python闭包、装饰器
1、閉包 closure
閉包是指引用了此函數外部嵌套函數作用域內的變量的函數
閉包必須滿足三個條件:
必須有一個內嵌函數
內嵌函數必須引用外部函數中的變量
外部函數的返回值必須是內嵌函數
閉包的特點:
閉包中外部嵌套函數中的變量不會在函數調用后立即銷毀,而是被內嵌函數引用
使用閉包的注意事項:
由于閉包會使得函數中的變量都被保留在內存中,內存消耗比較大,所以不能濫用閉包
2、裝飾器 decorators(專業提高篇)
裝飾器是一個函數,主要作用是用來包裝另一個函數或類(后面才講)
作用:
在不修改被裝飾函數的源代碼,不改變被裝飾的函數的調用方式的情況下添加或改變原函數的功能。
函數裝飾器的語法:
def 裝飾器函數名(fn):
語句塊
return 函數對象
@裝飾器函數名 <換行>
def 被裝飾函數名(形參列表):
語句塊
3、函數的文檔字符串
函數內第一次未賦值給任何變量的字符串是函數的文檔字符串
語法:
def 函數名(參數列表):
'函數文檔字符串'
語句塊
示例:
def myfunc(a, b, c):
'這是函數的文檔字符串'
pass
>>> help(myfunc)
5、函數的 __doc__屬性
__doc__屬性用于綁定函數的文檔字符串
6、函數定義語句(def 語句)的完整語法:
[@裝飾器名1]
[@裝飾器名2]
[...]
def 函數名([位置形參],[*元組形參], [命名關鍵字形參],[**字典形參]):
'''文檔字符串'''
語句塊
轉載于:https://www.cnblogs.com/zhaoyang1997/p/10503344.html
總結
以上是生活随笔為你收集整理的python闭包、装饰器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 07LaTeX学习系列之---Latex
- 下一篇: Python爬虫人工智能大数据全栈视频史