python(@property,setter,deleter)

class Women(object):
    def __init__(self, age):
        # 执行age函数,给_age属性赋值
        self.age = age
    def set_age(self,value):
        if not isinstance(value,int):
            raise TypeError('age must be a int value !')
        self._age = value
    @property
    def age(self):
        return self._age
    @age.setter
    def age(self, value):
        # 判断传递过来的值是否为整数类型,不是整数类型直接抛出异常
        if not isinstance(value, int):
            raise TypeError('age must be a int value !')
        self._age = value
        # 判断当前对象的年龄是否大于等于
        if self._age >= 18:
            # 添加一个属性,表示是否成年
            self.is_ok = True
            print('你已成年')
        else:
            self.is_ok = False
            print('未成年!')
    # @age.deleter 装饰器相当于给age函数绑定了一个删除属性的功能
    @age.deleter
    def age(self):
        # 在删除属性之前,判断是否拥有这个属性
        if hasattr(self, '_age'):
            del self._age
            print('成功删除_age属性!')
        else:
            print('%s没有_age属性,无法执行删除操作'%self)
w = Women(0)
print(w.age,w.is_ok)
w.age = 18
print(w.age,w.is_ok)
del w.age
执行结果:成功删除_age属性!
del w.age
执行结果:
<__main__.Women object at 0x0000000000B9BBA8>没有_age属性,无法执行删除操作


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值