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方法。