后浪云Python教程:Python描述符的两种类型
1、分类
数据描述符:实现了__get__ 和 __set__ 两种方法的描述符
非数据描述符:只实现了__get__ 一种方法的描述符
2、实例
# 数据描述符 class DataDes: def __init__(self, default=0): self._score = default def __set__(self, instance, value): self._score = value def __get__(self, instance, owner): print("访问数据描述符里的 __get__") return self._score # 非数据描述符 class NoDataDes: def __init__(self, default=0): self._score = default def __get__(self, instance, owner): print("访问非数据描述符里的 __get__") return self._score class Student: 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__") return super(Student, self).__getattribute__(item) def __repr__(self): return "<Student: {}, math:{}, chinese: {},>".format( self.name, self.math, self.chinese)
以上就是Python描述符的两种类型,希望对大家有所帮助。更多Python学习推荐:python教学
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
版权声明:
作者:后浪云
链接:https://www.idc.net/help/174621/
文章版权归作者所有,未经允许请勿转载。
THE END