python中的ch_python类和类型ch中的不可变属性

我正在寻找一种在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}$

但我很难加入这两种方法。

你能帮助我吗?你有什么想法吗?

非常感谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值