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

    python中使用__slots__定义类属性

    小妮浅浅小妮浅浅2021-04-26 14:25:54原创2580

    我们想要实现类的属性,但又希望这个类的属性能有限制,这时候class的方法就需要做一些调整。在class中有一个slots变量,能够完成对类属性的定义,不过定义的是当前类,如果想要作用子类,还需进一步的操作。下面我们就定义slots的方法进行介绍,然后就__slots__定义类属性的方法展开讲解。

    1.定义slots

    创建一个类属性,使用 slots 这个名字,并把它的值设为一个字符串构成的可迭代对象,其中各个元素表示各个实例属性。

    # 只在 Vector2d 类中添加了__slots__ 属性
    class Vector2d:
    __slots__ = ('__x', '__y')
    typecode = 'd'

    2.使用注意

    (1)__slots__定义的属性仅对当前类起作用,对继承的子类是不起作用的;

    (2)除非在子类中也定义__slots__,这样,子类允许定义的属性就是自身的__slots__加上父类的__slots__。

    3.实例

    >>> class GraduateStudent(Student):
    ...     pass
    ...
    >>> g = GraduateStudent()
    >>> g.score = 9999

    以上就是python中使用__slots__定义类属性的方法,在学会slots的基础使用后,可以就其定义的实例展开尝试,代码在上方都分享给大家了。

    (推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)

    专题推荐:python slots
    上一篇:python中ndarray创建的两种方法 下一篇:python中list与array有什么区别?

    相关文章推荐

    • python和go语言的九点对比• python中的unittest框架是什么?• python中使用__slots__定义类属性

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网