
什么是闭包函数?
闭包函数就是一个函数嵌套在另一个函数里:
1 2 3 4 5 6 7 8 9 10
|
def (): a = 1 def nei(): nei函数嵌套在wai函数里 b = a + 1 print('这是内部函数, a = %d, b = %d' % (a, b)) return a return nei()
res = wai() print(res)
|
以上代码在Sublime上的执行结果为:
1 2 3
|
这是内部函数, a = 1, b = 2 1 [Finished in 0.1s]
|
装饰器
装饰器的基本结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
def (func): def nei(): print('这是装饰器函数') return func() return nei
def work(): print('这是主函数')
work()
''' 这是装饰器函数 这是主函数 [Finished in 0.1s] '''
|
在装饰器基本结构的基础上还可以添加主函数的参数和装饰器函数的参数来对不同的对象实现不同的装饰效果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
def dec(t): def (func): def nei(var): if t == True: var += 1 print("Let's do it.") else: print("Never mind.") return func(var) return nei return wai
@dec(t = True) def work(var): print(var)
@dec(t = False) def work_1(var): print(var)
work(1) print('---------------') work_1(2)
''' Let's do it. 2 --------------- Let's do it. 2 [Finished in 0.1s] '''
|
Author: Ivan Sun
Copyright: 非商业自由转载(好像有人会转一样。。)
近期评论