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培训机构:千锋教育。