いくつかのクラスがあるとしましょう:ClassA
、ClassB
、ClassC
、およびClassD
です。私はさまざまな状況に基づいて設定する変数を持っています。私はそれが前倒しであることを知っていますが、私はそれを変更する必要があるたびに、さまざまなファイルの異なるコード行を書き直す必要はありません。ユーザー設定ではありません。変数名に基づいて異なるクラスを実行しますか?
はだから今、私たちはそうVariable = ClassX
を持っている、のは、私がClassA
にVariable
を設定しましょう。どうすればそれを使ってClassA
に電話をかけることができますか?例えば、私はこれを行うことができます知っている:
Variable = ClassA
if Variable == ClassA:
# Call ClassA and run it
elif Variable == ClassB:
# Call ClassB and run it
elif Variable == ClassC:
# Call ClassC and run it
elif Variable == ClassD:
# Call ClassD and run it
はしかし、私はこのような何かをしたい:
Variable = ClassA
V = Variable()
が、このことは可能ですか?
EDIT: もう少し詳しく...
だから私は、このシナリオで使用されている3つのファイルを持っています。
File1.py:
# Class = ClassA
# Class = ClassB
Class = ClassC
# Class = ClassD
...
if Class == "ClassA":
c = ClassSystem.ClassA
short_name = c.get_short_name()
elif Class == "ClassB":
c = ClassSystem.ClassB
short_name = c.get_short_name()
elif Class == "ClassC":
c = ClassSystem.ClassC
short_name = c.get_short_name()
elif Class == "ClassD":
c = ClassSystem.ClassD
short_name = c.get_short_name()
...
File2.py:
from Folder.File1 import short_name
from Folder.ClassSystem import *
...
S = short_name()
S.get_information()
これは動作するようには思えません。 File2はfile1の変数を参照しています。私はFile1の変数を使用してClassSystemで同じクラスを実行するにはFile2が必要です。
はい、これは完全に可能です。あなたはそれを試しましたか? –
これを確認してくださいhttps://stackoverflow.com/questions/2225038/determine-the-type-of-an-object – VTodorov
@NilsWerner詳細を追加しました。このシナリオでは動作しないようです。 –