# 把得到的属性值的方法上@property# 在设置属性值的方法上@属性名.setter# 两个方法的名字一致,都是属性名#先写@property再写@属性名.setterclass Person(object): def __init__(self,name,age):#在定义对象属性的时候,私有属性不加__ self.name = name self.age = age @property#相当于getName()方法 def name(self): return self.__name#但是返回的时候还是要self.__私有属性名 @name.setter#相当于setName()方法 def name(self,name): if len(name) > 6: print("非法") else: self.__name = name#赋值的时候也要self.__属性名 = 属性名 p1 = Person("张三12358",13)print(p1.name) ‘‘‘总结:1、在定义对象属性的时候不需要在对象属性加__2、要先定义@property相当于get方法3、再定义@属性名.setter相当于set方法4、在对象调用的时候直接是对象名.属性名‘‘‘
注意:这种方法设置私有属性,在创建对象实例初始化赋值时就会调用@属性名.setter方法过滤数据
原文地址:https://www.cnblogs.com/guojie-guojie/p/9268467.html
时间: 2024-10-07 06:10:56