• 技术文章 >Python技术 >Python基础教程

    Python描述符的两种类型

    小妮浅浅小妮浅浅2021-05-28 09:29:39原创2340

    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电脑。

    专题推荐:python描述符
    上一篇:Python中如何切换GIL? 下一篇:Python元类的使用

    相关文章推荐

    • Python中的描述符• python描述符是什么意思• Python描述符中有哪三种方法?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网