python3闭包通俗解释_Python|闭包、装饰器,简单的实例,通俗的理解
閉包和裝飾器都是屬于函數(shù)的語(yǔ)法范疇,是在函數(shù)定義中以另一個(gè)函數(shù)做為形參的語(yǔ)法機(jī)制。
1 閉包(Closurer)
閉包是定義內(nèi)部函數(shù)的一種語(yǔ)法規(guī)則,要理解閉包,請(qǐng)看下面的實(shí)例:def outer(t):
....print(t)
....def inner(i):
........return t+i
....return inner
tf1 = outer(200)
tf2 = outer(300)
print(tf1(20))
print(tf2(20))
'''
200
300
220
320'''
閉包是一種函數(shù)嵌套的機(jī)制,如上例的inner(),在inner()中引用了inner()以外、outer()以內(nèi)的局部變量,而outer返回inner。
裝飾器(Decorator)
裝飾器主要是利用閉包外層函數(shù)能返回內(nèi)層函數(shù)的功能,用來(lái)裝飾函數(shù),給函數(shù)快速增加附加的功能。def decor(f):
....def new_f(x,y):
........print('參數(shù)1為%d,參數(shù)2為%d' %(x,y))
........return f(x,y)
....return new_f
@ decor
def add(x,y):
....return x+y
print(add(5,7))
'''
參數(shù)1為5,參數(shù)2為7
12
'''
語(yǔ)句@ decor表示使用裝飾器來(lái)裝飾add(),實(shí)際上是執(zhí)行decor(add)()。本質(zhì)上就把a(bǔ)dd函數(shù)當(dāng)做參數(shù)傳遞到decor函數(shù),decor(add)返回的是new_f,add是new_f函數(shù)的一個(gè)變量。
-End-
總結(jié)
以上是生活随笔為你收集整理的python3闭包通俗解释_Python|闭包、装饰器,简单的实例,通俗的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 公积金怎样贷款买车
- 下一篇: 集分宝的钱用了要还吗 要还集分宝的钱吗