次のシナリオを想像してください。
class A:
def __init__(self, arg1=3, arg2=5):
pass
def createA(arg1=None, arg2=None):
if arg1 is None:
if arg2 is None:
a = A()
else:
a = A(arg2=arg2)
else:
if arg2 is None:
a = A(arg1=arg1)
else:
a = A(arg1=arg1, arg2=arg2)
return a
以下を念頭に置いて、この動作を実装する最良の方法は何ですか:
- クラスチェンジできない/したくない
A
A
のコンストラクターのパラメーターのデフォルト値を関数に明示的に追加したくありませんcreateA
か?
たとえば、オプションの引数が渡されていないことを示す値はありますか? 何かのようなもの:
if arg1 is None:
newArg1 = NotPassed
else:
newArg1 = arg1
if arg2 is None:
newArg2 = NotPassed
else:
newArg2 = arg2
A(arg1=newArg1, arg2=newArg2)