Python_闭包、装饰器

2018-01-04  本文已影响0人  等哈光圈

闭包

# 定义一个函数
def test(number):
        
        # 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数及用到的一些变量称之为闭包
        def test_in(number_in):
                print("in text_in 函数, number_in is %d" % number_in)
                return number + number_in
        # 其实这里返回的就是闭包的结果
        return text_in
# 给test函数赋值,这个20就是给参数number
ret = test(20)
# 注意这里的100其实给参数的number_in
print(ret(100))
# 注意这里的200其实给参数number_in
print(ret(200))

运行结果:
in test_in 函数, number_in is 100
120
in test_in 函数, number_in is 200
220

装饰器

#### 第一波 ####
def foo()
       print("foo")
foo # 表示是函数
foo() # 表示执行foo函数
#### 第二波 ####
def foo()
       print("foo")

foo = lambda x: x + 1
foo() # 执行lambda表达式, 而不再是原来的foo函数, 因为foo这个名字被重新指向另外一个匿名函数
上一篇 下一篇

猜你喜欢

热点阅读