# -*- coding:utf-8 -*- #property #内置装饰器函数,只在面向对象中使用 #把方法伪装成一个属性!!!!!! print("----------------案例:1") from math import pi class Circle: def __init__(self,r): self.r = r @property def perimeter(self): #后面不能传参数!!! return 2*pi*self.r @property def area(self): return self.r**2*pi y1 = Circle(5) #print(y1.area()) print(y1.area) #拿到一个圆的面积 print(y1.perimeter) #拿到一个圆的面积 print("----------------案例:2") class Person: def __init__(self,name): self.__name = name @property def name(self): return self.__name #一定先有property才能使用name.deleter 和name.setter @name.deleter # 删除 del nezha.name 触发了此方法 def name(self): print('执行了这个方法') del self.__name @name.setter # 修改 def name(self,new_name): #只能传一个参数 self.__name = new_name nezha = Person('哪吒') #定义一个对象 print(nezha.name) #查看nezha的name del nezha.name #删除dezha的name属性 nezha.name = '三太子' #重新赋值nezha的name print(nezha.name) #查看 print('---------------------------------------------') print("----------------案例:3") class Person: def __init__(self,name): self.__name = name @property def name(self): return self.__name + 'AAA' @name.setter # 修改 def name(self,new_name): self.__name = new_name nezha = Person('哪吒') print(nezha.name) nezha.name = '修改后的三太子' #修改 print(nezha.name) #属性可以查看 修改 删除---