python描述符的两种类型

2023-12-14 8:00:00网络知识悟空

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培训机构:筋斗云。

发表评论: