クラスC
があるとします。Pythonでは、変数からクラスをインスタンス化する正しい方法は何ですか?
o = C()
と書くと、C
というインスタンスが作成され、o
に割り当てられます。
しかし、クラス自体を変数に代入してインスタンス化したいのですが?実際instantiate()
の構文は何
if (something):
classToUse = C1
else:
classToUse = C2
o = classToUse.instantiate()
:
例えば、私は、このようなC1
やC2
として2つのクラスを、持っている、と私はのような何かをしたいと仮定? __new__()
への電話は十分ですか?
したがって、変数にadding()のセマンティクスは、「クラスとして扱い、インスタンス化する」ことを意味します。 – Uri
()は「これを呼び出す」ことを意味します。クラスを呼び出すと、それをインスタンス化することを意味します。背後では、何かを呼び出すと__call__メタメソッドが呼び出されます。このメソッドを使用して、クラス*インスタンス*を呼び出し可能にすることができます。 – Cide
前のコメントでは、コールはおそらく '__call __()'でなければなりません。 (今度は書式設定がうまくいくことを願っています) –