@property方法使用
Python中访问对象的属性可以这么做:实例名.变量名
可以使用@property装饰器将方法伪装 成 属性的样式使用
@property 下方的函数只能是self参数 ,不能有其他的参数
property 常和私有属性相结合使用
from math import pi class Yuan: def __init__(self,r): self.r = r @property def ares(self):#只能是self一个参数 return self.r**2*pi def perimeter(self): return self.r*2*pi C1 = Yuan(3) # print(C1.ares())#没加@property 用这样的方式调用,需要添加括号 print(C1.ares)
1.setter 修改
修改@property 下的属性值 借助 函数名称.setter 修改
class Persion: def __init__(self,name): self.__name = name @property def name(self): return self.__name +'sb' @name.setter#传一个参数 def name(self,new_name): self.__name = new_name a1 = Persion('jinijin') print(a1.name) a1.name = '大家'#修改属性值, 如果不适用@name.setter 则不能修改 print(a1.name)
2.deleter 删除 通过删除property属性来删除私有属性
class Persion: def __init__(self,name): self.__name = name @property def name(self): return self.__name +'sb' @name.setter#传一个参数 def name(self,new_name): self.__name = new_name @name.deleter def name(self): del self.__name a1 = Persion('jinijin') print(a1.name) a1.name = '大家'#修改属性值, 如果不适用@name.setter 则不能修改 print(a1.name) del a1.name print(a1.name)
已经找不到这个属性了 删除okay