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

    Python描述符的两种类型

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

    1、分类

    数据描述符:实现了__get__ 和 __set__ 两种方法的描述符

    非数据描述符:只实现了__get__ 一种方法的描述符

    2、实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    # 数据描述符

    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学习网