1
在定義時解析默認值。所以這不會起作用將自身作爲默認參數的函數
def f(x, func = f):
if x<1:
return x
else:
return x + func(x-1)
雖然我確實找到了一種方法。我開始與一些虛擬功能
def a(x):
return x
def f(x, func=a):
if x < 1:
return x
else:
return x + func(x-1)
,然後發出
f.__defaults__ = (f,)
顯然很尷尬。有沒有另一種方式,或者這是不好的Python?如果不好,你能解釋爲什麼嗎?它會在哪裏破壞事物?
在任何情況下,它的工作原理:
In [99]: f(10)
Out[99]: 55
In [100]: f(10, f)
Out[100]: 55
In [101]: f(10, lambda x : 2*x)
Out[101]: 28
爲什麼不使用'None'? –
你爲什麼要這麼做?它聞起來像一個XY問題。你真的想做什麼? – DeepSpace
這更像遞歸。你可以在函數 –