# property 内置装饰器函数

from math import pi
class Circle:
    def __init__(self,r):
        self.r = r
    @property#把这个方法伪装成属性
    def perimeter(self):#property伪装成为属性不能传入任何参数
        return 2*pi*self.r
    @property#把这个方法伪装成属性
    def area(self):#property伪装成为属性不能传入任何参数
        return self.r**2*pi

 c1 = Circle(5)
 print(c1.area)     # 圆的面积
print(c1.perimeter) # 圆的周长


# 属性 修改 
 class Person:
     def __init__(self,name):
         self.__name = name
     @property
     def name(self):
         return self.__name + 'sb'
     @name.setter #修改name
     def name(self,new_name):
        self.__name = new_name

tiger = Person('泰哥')
 print(tiger.name)
tiger.name = '全班'
 print(tiger.name)



# 属性 查看 修改 删除
class Person:
    def __init__(self,name):
         self.__name = name
         self.price = 20
     @property
    def name(self):
         return self.__name
     @name.deleter  #删除
     def name(self):
         del self.__name
     @name.setter  #修改
     def name(self,new_name):
         self.__name = new_name
brother2 = Person('二哥')
del Person.price
brother2.name = 'newName'
 brother2
del brother2.name#自动触发@name.deleter方法
print(brother2.name)


猜你喜欢

转载自blog.csdn.net/qq_37493425/article/details/88236214