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
