python描述符的兩種類型
1、分類
數據描述符:實現了__get__和__set__兩種方法的描述符
非數據描述符:只實現了__get__一種方法的描述符
2、實例
#數據描述符
classDataDes:
def__init__(self,default=0):
self._score=default
def__set__(self,instance,value):
self._score=value
def__get__(self,instance,owner):
print("訪問數據描述符里的__get__")
returnself._score
#非數據描述符
classNoDataDes:
def__init__(self,default=0):
self._score=default
def__get__(self,instance,owner):
print("訪問非數據描述符里的__get__")
returnself._score
classStudent:
math=DataDes(0)
chinese=NoDataDes(0)
def__init__(self,name,math,chinese):
self.name=name
self.math=math
self.chinese=chinese
def__getattribute__(self,item):
print("調用__getattribute__")
returnsuper(Student,self).__getattribute__(item)
def__repr__(self):
return"".format(
self.name,self.math,self.chinese)
以上就是Python描述符的兩種類型,希望對大家有所幫助。更多Python學習推薦:請關注IT培訓機構:千鋒教育。