我的代碼如下所示:相互依存的默認參數
import random
def helper():
c = random.choice([False, True]),
d = 1 if (c == True) else random.choice([1, 2, 3])
return c, d
class Cubic(object):
global coefficients_bound
def __init__(self, a = random.choice([False, True]),
b = random.choice([False, True]),
(c, d) = helper()):
...
...
助手()功能介紹我不能有相互依存的參數在函數本身的定義 - Python的抱怨說,它無法找到c當它正在計算時d。
我希望能夠創建這個類,像這樣的一個目的,改變默認參數:
x = Cubic(c = False)
但我得到這個錯誤:
Traceback (most recent call last):
File "cubic.py", line 41, in <module>
x = Cubic(c = False)
TypeError: __init__() got an unexpected keyword argument 'c'
這可能與我怎麼已經寫了嗎?如果不是,我該怎麼做?
我懷疑這工作你怎麼認爲它會 - 默認參數調用'random.choice()創建功能時,'將有所回升,然後是每一樣它被稱爲時間。 [這個問題解釋了爲什麼。](http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument)。 –
@Lattyware謝謝你的提醒。我已經閱讀過,但我沒有考慮使用random.choice – nebffa