如何__dict__
在其自己的“类初始值设定项”(类定义)代码中访问一个类?如果做不到这一点,我如何以字符串的形式访问类的待定义属性(以便可以以编程方式生成它们的名称并设置它们的值)
class A: # from a library by a stubborn maintainer
def __init__ (self):
self.hello = "Hello"
# + some huge misguided crap that I do not control
def f1 (self):
self.f2 ()
def f2 (self):
print self.hello
class B:
f1 = A.__dict__ ['f1'] # works
# how to loop over 2..10 and set B.f$i <- A.f$i ?
# this doesn't work:
#B.__dict__ ['f2'] = A.__dict__ ['f2'] # B not yet defined
def __init__ (self):
#self.hello = A ().hello # the actual code has to be copied manually
# misguided crap removed
a = B ()
a.f2()
最好不要复制/粘贴 self.hello 初始化以绕过被误导的东西,但我认为如果没有重构工具,这将无法轻松解决。