python描述符的兩種類型
1、分類
數(shù)據(jù)描述符:實(shí)現(xiàn)了__get__和__set__兩種方法的描述符
非數(shù)據(jù)描述符:只實(shí)現(xiàn)了__get__一種方法的描述符
2、實(shí)例
#數(shù)據(jù)描述符
classDataDes:
def__init__(self,default=0):
self._score=default
def__set__(self,instance,value):
self._score=value
def__get__(self,instance,owner):
print("訪問數(shù)據(jù)描述符里的__get__")
returnself._score
#非數(shù)據(jù)描述符
classNoDataDes:
def__init__(self,default=0):
self._score=default
def__get__(self,instance,owner):
print("訪問非數(shù)據(jù)描述符里的__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("調(diào)用__getattribute__")
returnsuper(Student,self).__getattribute__(item)
def__repr__(self):
return"".format(
self.name,self.math,self.chinese)
以上就是Python描述符的兩種類型,希望對大家有所幫助。更多Python學(xué)習(xí)推薦:請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。