我正在寻找一种在python中构建类的方法:setter在赋值之前检查值的类型
无法添加新的类属性
暂时我找到了那两个装修工:def getter_setter_gen(name, type_):
def getter(self):
return getattr(self, "__" + name)
def setter(self, value):
print "setter", value
if not isinstance(value, type_):
raise TypeError("%s attribute must be set to an instance of %s" % (name, type_))
setattr(self, "__" + name, value)
return property(getter, setter)
def auto_attr_check(cls):
new_dct = {}
print "auto_attr_check", cls.__dict__.items()
for key, value in cls.__dict__.items():
if isinstance(value, type):
value = getter_setter_gen(key, value)
new_dct[key] = value
# Creates a new class, using the modified dictionary as the class dict:
n = type(cls)(cls.__name__, cls.__bases__, new_dct)
return n
以及
^{pr2}$
但我很难加入这两种方法。
你能帮助我吗?你有什么想法吗?
非常感谢