Python的函數(shù)嵌套的使用方法
例子:
def re_escape(fn):
def arg_escaped(this, *args):
t = [isinstance(a, VerEx) and a.s or re.escape(str(a)) for a in args]
return fn(this, *t)
return arg_escaped
函數(shù)嵌套
python允許在定義函數(shù)的時候,其函數(shù)體內(nèi)又包含另外一個函數(shù)的完整定義,這就是我們通常所說的嵌套定義。為什么?因為函數(shù)是用def語句定義的,凡是其他語句可以出現(xiàn)的地方,def語句同樣可以出現(xiàn)。
像這樣定義在其他函數(shù)內(nèi)的函數(shù)叫做內(nèi)部函數(shù),內(nèi)部函數(shù)所在的函數(shù)叫做外部函數(shù)。當(dāng)然,我們可以多層嵌套,這樣的話,除了最外層和最內(nèi)層的函數(shù)之外,其它函數(shù)既是外部函數(shù)又是內(nèi)部函數(shù)。
使用方法
spam = 99
def tester():
def nested():
global spam
print('current=',spam)
spam += 1
return nested
#注意:打印 print 那行的代碼調(diào)用是tester()()
#而不是tester().nested()
相關(guān)文章
Django中使用 Closure Table 儲存無限分級數(shù)據(jù)
對于數(shù)據(jù)量大的情況(比如用戶之間有邀請鏈,有點三級分銷的意思),就要用到 closure table 的結(jié)構(gòu)來進行存儲。這篇文章主要介紹了Django中使用 Closure Table 儲存無限分級數(shù)據(jù),需要的朋友可以參考下2019-06-06Django怎么在admin后臺注冊數(shù)據(jù)庫表
這篇文章主要介紹了Django怎么在admin后臺注冊數(shù)據(jù)庫表,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11python之關(guān)于數(shù)組和列表的區(qū)別及說明
這篇文章主要介紹了python之關(guān)于數(shù)組和列表的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05python中的class_static的@classmethod的巧妙用法
python中的class_static的@classmethod的使用 classmethod的使用,主要針對的是類而不是對象,在定義類的時候往往會定義一些靜態(tài)的私有屬性,今天通過示例代碼看下classmethod的妙用2021-06-06