从dict设置类的属性



我成功地实现了一个描述符来清理我的代码,到目前为止它运行得很好。此时此刻,我的代码基本上看起来像这个

class ABC:
att1 = Descriptor(arg1)
att2 = Descriptor(arg2)
att3 = Descriptor(arg3)

然而,为了进一步减少重复,我想做一些类似的事情

class ABC:
att_arg = {'att1':arg1,
'att2':arg2,
'att3':arg3}
for att, arg in att_arg.items():
setattr(ABC, att, Descriptor(arg))

但是这导致CCD_ 1。已经考虑过用一个包装类来实现这一点,但有人知道一个优雅的解决方案吗?

在构造函数中做什么?从那里你可以使用self对象来设置属性:

class ABC:
ATTR_ARG = {'att1':arg1,
'att2':arg2,
'att3':arg3}
def __init__(self):
for attr, arg in ATTR_ARG.items():
setattr(self, attr, Descriptor(arg))

最新更新