现在__设置属性__仅适用于实例。课堂上有类似的方法吗?我问这个问题是因为当用户在类中定义属性时,我想按顺序收集已定义属性的列表,如下所示:
class CfgObj(object):
_fields = []
def __setattr__(self, name, value):
self._fields.append([name, value])
object.__setattr__(self, name, value)
class ACfg(CfgObj):
setting1 = Field(str, default='set1', desc='setting1 ...')
setting2 = Field(int, default=5, desc='setting2...')
我知道上面的代码不会按预期工作,因为__设置属性__仅通过实例调用,如下所示:
acfg = ACfg()
acfg.c = 1
acfg._fields == [['c', 1]]
那么,有没有等价的__设置属性__对于 python 类?主要目的是当用户在类中定义定义属性时,按顺序收集定义属性。
对,但是这不是你想要的方式.
class MC(type):
def __init__(cls, name, bases, dct):
print dct
super(MC, cls).__init__(name, bases, dct)
class C(object):
__metaclass__ = MC
foo = 42
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)