您可以使用getattr()在运行时不知道其名称时访问属性:
obj = myobject()
i = 7
date7 = getattr(obj, 'date%d' % i) # same as obj.date7
如果您将编号的类保存在名为foo的模块中,则可以再次使用getattr()通过数字访问它们.
foo.py:
class Class1: pass
class Class2: pass
[ etc ]
bar.py:
import foo
i = 3
someClass = getattr(foo, "Class%d" % i) # Same as someClass = foo.Class3
obj = someClass() # someClass is a pointer to foo.Class3
# short version:
obj = getattr(foo, "Class%d" % i)()
说完所有这一切,你真的应该避免这种事情,因为你将永远无法找到这些编号的属性和类被使用的位置,除了阅读整个代码库.你最好把所有东西放在字典里.