python 閉包一例
很少寫複雜的程式碼, 所以很少用到所謂的高階功能。
根據百度 知道的解釋
閉包是為了在程式碼退出或者執行完後,能夠保持它當時的執行環境,不被gc
當然了,這是我的個人理解。
python 的一個例子。
>>> import os,sys
>>> def a (s=0):
... r=[s]
... def x():
... r[0]+=1
... return r
... return x
...
>>> c=a()
>>> print c()
>>> print c()
[1]
>>> print c()
[2]
>>> print c(100)
Traceback (most recent call last):
File "", line 1, in
TypeError: x() takes no arguments (1 given)
>>> c=a(100)
>>> print c()
>>> print c()
[101]
a 函式執行完後,他執行時的上下文環境,因為存在函式c 透過x 的引用,而導致gc 不能回收a 的環境。
根據百度 知道的解釋
閉包是為了在程式碼退出或者執行完後,能夠保持它當時的執行環境,不被gc
當然了,這是我的個人理解。
python 的一個例子。
>>> import os,sys
>>> def a (s=0):
... r=[s]
... def x():
... r[0]+=1
... return r
... return x
...
>>> c=a()
>>> print c()
>>> print c()
[1]
>>> print c()
[2]
>>> print c(100)
Traceback (most recent call last):
File "
TypeError: x() takes no arguments (1 given)
>>> c=a(100)
>>> print c()
>>> print c()
[101]
a 函式執行完後,他執行時的上下文環境,因為存在函式c 透過x 的引用,而導致gc 不能回收a 的環境。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-716218/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 閉包 pythonPython
- Python的閉包Python
- Python技法4:閉包Python
- python閉包小例子Python
- Python高階--閉包Python
- 理解Python函式閉包Python函式
- python進階(12)閉包Python
- Python深入分享之閉包Python
- 聊聊 Python 中的閉包Python
- Python中什麼是閉包?閉包的好處是什麼?Python
- Python裡的閉包和AOPPython
- Python 閉包函式說明Python函式
- python closure閉包 lambda表示式Python
- Python學習筆記 - 閉包Python筆記
- Python閉包與裝飾器Python
- python中的閉包函式Python函式
- 【python】閉包與裝飾器Python
- 說說Python中的閉包Python
- Python 中的閉包總結Python
- python 閉包和裝飾器Python
- Python中的閉包總結Python
- python閉包詳解(例項)Python
- python閉包 - 理解與應用Python
- 草根學Python(十五) 閉包(解決一個需求瞭解閉包流程)Python
- [Python小記] 通俗的理解閉包 閉包能幫我們做什麼?Python
- python高階-閉包-裝飾器Python
- Python基礎之閉包函式Python函式
- Python:從閉包到裝飾器Python
- Python: 攜帶狀態的閉包Python
- Python 的閉包和裝飾器Python
- Python 快速教程(深入篇04):閉包Python
- python的裝飾器和閉包Python
- python_August(閉包、裝飾器)Python
- 閉包
- 閉包 | 淺談JavaScript閉包問題JavaScript
- Swift-逃逸閉包、自動閉包Swift
- python 關於 函式物件與閉包Python函式物件
- Python 中的閉包與裝飾器Python