我的课程
class Base:
#has no attributes of its own
def __init__(self, params):
for key in params:
if hasattr(self, key):
self[key] = params[key]
def __setitem__(self, key, value):
self[key] = value
class Child(Base):
prop1 = None
prop2 = None
然而,当self[key] = value
递归调用self.__setitem__
时,这将进入无休止的递归
我的目标是能够像这样将字典传递到Child()
构造函数中
像Child这样的类有很多,但是有不同的字段。params
是来自json blob的dict。我想使用Base
作为不同类的泛型填充器,比如Child
我见过使用内部dict
来完成我所要求的内容的方法,但据我所知(我对Python是全新的)这将阻止通过点表示法访问方法(我宁愿避免)。在
我能想象的最接近您想要的是使用
setattr
,它接受一个对象、一个属性名(作为str
)和该属性的值。在只需更新
__init__
中实例的__dict__
:然后:
^{pr2}$孙子们会表现得:
相关问题 更多 >
编程相关推荐