Python描述符的两种类型

2025-12-01 0 92,751

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 "".format(
                self.name, self.math, self.chinese)

以上就是Python描述符的两种类型,希望对大家有所帮助。更多Python学习推荐:python教学

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 python基础 Python描述符的两种类型 https://www.zhiup.top/1997.html

相关