在建立类对象时,使用@property代替get和set

class Cat():
    def __init__(self, name, age):
        self.__name = name
        self.age = age

    @property
    def name(self):
        return self.__name
    # 使用语法糖可以把方法转化为属性,省去get()和set()方法。但是注意,方法名和属性名不能是一致的,如name和__name。

    @name.setter
    def name(self, value):
        if isinstance(value, str):
            self.__name = value
        else:
            print('姓名输入有误')


cat = Cat('yangjian', 22)
print(cat.name)
cat.name = 3

结果:
yangjian
姓名输入有误
 
 
使用语法糖可以把方法转化为属性,省去get()和set()方法。但是注意,方法名和属性名不能是一致的,如name和__name,如果写成self.name = value,就会陷入死循环,不断执行name方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值