百行代码入门Python - Chapter 5

以下代码均采用Python 3.5.2 编写。新建一个名为HelloWorld.py的文件,当然名称无所谓,输入以下代码:

#func return
def line_conf():
    b=15
    def line(x):
        return 2*x+b
    b=5
    return line

my_line=line_conf()
print(my_line(5))

#closure
print(my_line.__closure__)
print(my_line.__closure__[0].cell_contents)

def line_conf2(a,b):
    def line(x):
        return a*x+b
    return line

line1=line_conf2(1,1)
line2=line_conf2(4,5)
print(line1(1))
print(line2(1))

#decorator
def decorator_demo(old_function):
    def new_function(a,b):
        print("input", a, b)
        return old_function(a,b)
    return new_function

@decorator_demo
def square_sum(a,b):
    return a**2+b**2

@decorator_demo
def cubic_sum(a,b):
    return a**3+b**3

print(square_sum(2,1))
print(cubic_sum(2,1))

def pre_str(pre=""):
    def decorator(old_function):
        def new_function(a,b):
            print(pre+" input ",a, b)
            return old_function(a,b)
        return new_function
    return decorator

@pre_str("^_^")
def square_diff(a,b):
    return a**2-b**2

print(square_diff(2,1))

def decorator_class(SomeClass):
    class NewClass(object):
        def __init__(self, age):
            self.total_display=0
            self.wrapped=SomeClass(age)

        def display(self):
            self.total_display+=1
            print("total display", self.total_display)
            self.wrapped.display()

    return NewClass

@decorator_class
class Bird(object):
    def __init__(self, age):
        self.age=age

    def display(self):
        print("My age is ",self.age)

eagle_lord=Bird(5)
for i in range(3):
    eagle_lord.display()

#lambda
lambda_sum = lambda x,y: x+y

print(lambda_sum(1,2))

#map
data_list=[1,3,5,6]
result=map(lambda x: x+3, data_list)
for i in result:
    print(i)

data_list1=[1,3,5,7]
data_list2=[2,4,6,8]
result=map(square_sum,data_list1,data_list2)
for i in result:
    print(i)

读懂以上代码即可轻松掌握装饰器、map函数等基本命令使用方法,方便起见,可以考虑将尚未读到的代码注释掉,一段段阅读。

时间: 2024-10-30 07:50:33

百行代码入门Python - Chapter 5的相关文章

百行代码入门Python - Chapter 4

以下代码均采用Python 3.5.2编写.新建一个名为HelloWorld.py的文件,当然名字无所谓,输入以下代码: #Class class Bird(object): feather= True reproduction="egg" def chirp(self, sound="some sound"): print(sound) def set_color(self,color): self.color=color return color #proper

百行代码入门Python - Chapter 1

以下代码均用Python 3.5.2编写. 一下代码建立在一个名为HelloWorld.py的主程序中,当然名字是次要的,随便取一个,只要不和本文中的其它文件重名即可.读懂以下示例代码即可入门Python: #Basics print("Hello World") example_dict={"liaobin":20, "yujing":18, "jiansheng":16} print(example_dict["

百行代码入门Python - Chapter 6

以下代码均采用Python 3.5.2编写.新建一个名为HelloWorld.py的文件,当然名字无所谓,输入以下代码: #filter def larger100(a): return a>100 for i in filter(larger100,[10,56,101,500]): print(i) #reduce from functools import reduce data_list = [1,2,5,7,9] result=reduce(lambda x,y: x+y, data_

百行代码入门Python - Chapter 3

以下代码采用Python3.5.2编写. 新建一个HelloWorld.py文件,当然文件名无所谓,只要不和下文中提及的文件重名即可,输入如下代码: #Class class Bird(object): feather= True reproduction="egg" def chirp(self, sound="some sound"): print(sound) def set_color(self,color): self.color=color return

百行代码入门Python - Chapter2

以下代码均采用Python 3.5.2编写. 建立一个名为HelloWorld.py的文件,当然名字无所谓,只要不是文字提及的其它文件名字即可,读懂以下代码方可轻松入门Python: #Class class Bird(object): feather= True reproduction="egg" def chirp(self, sound): print(sound) def set_color(self,color): self.color=color return color

PHP百行代码快速构建简易聊天室

聊天室   无聊情况下,看能用比较少的代码构建聊天室,一开始写了整整100行把聊天室内完成,后来觉得很多功能没有,又重新修改,加了不少代码.其实不利用特别复杂的技术,比如模板.数据库等等,一样能做比较不错的聊天室,适合个人使用. 基本功能:能登陆,聊天,记录在线人数IP事件,能控制聊天的字体颜色,自动把转化聊天中网址为链接地址,能定制聊天室标题.广告信息等等.使用文本作为存储媒体,又兴趣可以参考代码,并且进行扩展. 其实PHP作为快速开发的脚本语言是很棒的! ===代码=== <?php/** 

极致之美——百行代码实现全新智能语言第1/6页_javascript技巧

首先要解释一下: "极致之美"不是说月儿的这篇文章,因为本人还没有自大到这种程度:P,它形容的是Lisp和javascript结合的优美形态. 本来以下内容是要在无优首发的,但是不巧完成文章的当天忽然发现无优"弹"了,直到上周末才恢复=.=,由于不能等那么久,所以就先放到月儿在CSDN上的博客里去了. 正如标题所描述的,下文是关于用javascript实现类Lisp语言的技巧,然而重点不在于如何实现一门编程语言,而是在于通过思考和实现过程展示javascript的简

PHP程序百行代码快速构建简易聊天室方法

 基本功能:能登陆,聊天,记录在线人数IP事件,能控制聊天的字体颜色,自动把转化聊天中网址为链接地址,能定制聊天室标题.广告信息等等.使用文本作为存储媒体,又兴趣可以参考代码,并且进行扩展. 其实PHP作为快速开发的脚本语言是很棒的! ===代码=== 以下为引用的内容:  <?php /**  * 黑夜路人简易聊天室  * 作者: heiyeluren <heiyeluren_at_163.com>  * 创建: 2005-8-10 22:42  * 修改: 2005-8-11 23:

3行代码给你的python提速4倍!

Python绝对是处理数据或者把重复任务自动化的绝佳编程语言.要抓取网页日志?或者要调整一百万张图片?总有对应的Python库让你轻松完成任务. 然而,Python的运营速度一直饱受诟病.默认状态下,Python程序使用单个CPU的单个进程.如果你的电脑是最近十年生产的,多数情况下会有4个及以上CPU核.也就是说,当你在等程序运行结束的时候,你的计算机有75%或者更多的计算资源都是空置的! 让我们来看看如何通过并行运算充分利用计算资源.多亏有Python的concurrent.futures模块