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