假设我们有几个不同的类:ClassA
、ClassB
、ClassC
和ClassD
。我有一个变量,我会根据不同的情况设置。我知道这将是提前的时间,但我不想重写许多不同的代码行在不同的文件,每次我需要改变它。它不是用户集。你知道吗
所以现在我们有
Variable = ClassX
假设我把Variable
设为ClassA
。我怎样才能用它来调用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()
这可能吗?你知道吗
编辑: 再详细一点。。。你知道吗
所以我有3个文件在这个场景中使用。你知道吗
文件1.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()
...
文件2.py:
from Folder.File1 import short_name
from Folder.ClassSystem import *
...
S = short_name()
S.get_information()
这似乎不管用。File2正在引用file1中的变量。然后我需要File2使用File1中的变量在ClassSystem中运行同一个类。你知道吗
你可以使用
eval
但我不确定
eval
是否是推荐的方法。你知道吗是的,完全有可能。不过,最简洁的方法不是用
if
来实现,而是将类名字典添加到类对象中。你知道吗然后可以为字典设置键并调用生成的类:
当然,可以对类集进行修改,以包含您希望的任何其他对象。你知道吗
相关问题 更多 >
编程相关推荐