0
可有人請向我解釋,下面是如何工作的:蟒蛇傳遞位置參數另一個函數調用
class Memoize:
def __init__(self, f):
self.f = f
self.memo = {}
def __call__(self, *args):
if not args in self.memo:
self.memo[args] = self.f(*args)
return self.memo[args]
然後:
def factorial(k):
if k < 2: return 1
return k * factorial(k - 1)
factorial = Memoize(factorial)
這是從this question拍攝。我想了解self.f(*args)
是如何工作的。 args
是位置參數的元組。當我嘗試做:
*(1,2,3)
我得到語法錯誤。我認爲這是解包運營商或類似的東西。用元組星號表示什麼意思是獨立的,還是隻存在於函數調用的上下文中?謝謝你的任何解釋。
http://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists –
你是正確的,但只存在於一個函數調用的上下文。 – BrenBarn
謝謝@BrenBarn的答案。 – ducin