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)()
说了这么多,您 应该避免这种事情,因为除非通读整个代码库,否则您将永远无法找出这些编号的属性和类在何处使用。您最好将所有内容都放入字典中。