比方说,我们有一些不同的类: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个在这种情况下使用的文件。
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中的变量。然后,我需要File2以使用File1中的变量在ClassSystem中运行相同的类。
是的,完全有可能。if
但是,最紧凑的方法不是使用s来实现,而是包括将类名字典到类对象。
然后,您可以键入字典并调用生成的类:
cls_dict = {c.__name__: c for c in {ClassA, ClassB}}
v = 'ClassA'
cls_dict[v]()
当然,可以将这组类更改为包含您希望的任何其他对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句