私は次のようなコードを持っています:
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()):
...
...
関数自体の定義に相互依存の引数を含めることができないため、helper() 関数が導入されました。Python は、d を計算しているときに c が見つからないと文句を言います。
デフォルトの引数を変更して、このクラスのオブジェクトを作成できるようにしたい:
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'
これは私が書いた方法で可能ですか?そうでない場合、どのようにすればよいですか?