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