python3之閉包、裝飾器、生成器
閉包:
可以理解爲函數的一種使用方式。
具體的特性爲:
函數中內嵌函數,把內嵌函數的執行結果作爲外層函數的返回值。
def count(start=0):
counter = [start]
def incr():
counter[0] += 1
return counter[0]
return incr
裝飾器:
裝飾器是在函數調用之上的修飾。
應用場景:
在多個函數需要進行同樣的操作時,在不改變源代碼的前提下,可以使用裝飾器
def set_color(func):
def set_red():
return '\033[31;1m%s\033[0m' % func()
return set_red
@set_color
def welcome():
return 'welcome to china'
@set_color
def say_hi():
return 'how are you?'
if __name__ == '__main__':
print(welcome())
print(say_hi())
生成器:
一個函數中間的yield返回的中間值
yield返回執行結果並不中斷程序執行,return在返回執行結果的同時中斷程序執行
>>> def azj():
... yield 'hello'
... yield 100
... yield [10, 20]
...
>>> a = azj()
>>> for i in a:
... print(i)
...
hello
100
[10, 20]
python3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.