函數內部是否可以嵌套函數?如果是這樣,它有什麼目的?我下面有一些示例代碼來展示我的意思。函數內部的嵌套函數
def theFunction():
print "This is a function"
def functionception():
print "Bad inception joke...."
再次,這是可能的嗎?如果是這樣,它的用途是什麼,它是如何使用的?
函數內部是否可以嵌套函數?如果是這樣,它有什麼目的?我下面有一些示例代碼來展示我的意思。函數內部的嵌套函數
def theFunction():
print "This is a function"
def functionception():
print "Bad inception joke...."
再次,這是可能的嗎?如果是這樣,它的用途是什麼,它是如何使用的?
是這是可能的,裝潢等功能時被頻繁使用,例如
def memo(f):
cache = {}
def func(*args):
if args not in cache:
cache[args] = f(*args)
return cache[args]
return func
實例:
@memo
def memoized_func(some_arg):
return some_arg ** 2
這裏內部功能func
用於包裝參數函數f
,提供額外的功能(在這種情況下保存以前的計算結果)。
是的,你可以。
您可以讓外部函數對傳遞給外部函數的變量執行一些邊界條件檢查,並將「有效/清除」變量傳遞給內部函數以執行實際處理/操作。這實際上是裝飾者的工作原理。
此博客詳細解釋了外部函數內部函數組合裝飾是如何工作 - http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/
是啊,他們是所謂的裝飾。 –
不,不錯,是的,你可以做到,但他們不叫裝飾者。 – kindall
重新提到這個問題,因爲有人在學習Python,我也一直在想這件事,並發現答案有用和簡潔。 – TooTone