python中使用__slots__定義類屬性
我們想要實現類的屬性,但又希望這個類的屬性能有限制,這時候class的方法就需要做一些調整。在class中有一個slots變量,能夠完成對類屬性的定義,不過定義的是當前類,如果想要作用子類,還需進一步的操作。下面我們就定義slots的方法進行介紹,然后就__slots__定義類屬性的方法展開講解。
1.定義slots
創建一個類屬性,使用slots這個名字,并把它的值設為一個字符串構成的可迭代對象,其中各個元素表示各個實例屬性。
#只在Vector2d類中添加了__slots__屬性
classVector2d:
__slots__=('__x','__y')
typecode='d'
2.使用注意
(1)__slots__定義的屬性僅對當前類起作用,對繼承的子類是不起作用的;
(2)除非在子類中也定義__slots__,這樣,子類允許定義的屬性就是自身的__slots__加上父類的__slots__。
3.實例
>>>classGraduateStudent(Student):
...pass
...
>>>g=GraduateStudent()
>>>g.score=9999
以上就是python中使用__slots__定義類屬性的方法,在學會slots的基礎使用后,可以就其定義的實例展開嘗試,代碼在上方都分享給大家了。更多Python學習教程請關注IT培訓機構:千鋒教育。