python語法基礎 slots

2021-09-12 07:56:07 字數 1094 閱讀 2091

slots

class student(object):

slots= (『name』,『age』) #限制student類例項的屬性,最多只能是name和age

s=student() #例項化s

s.name=『micle』 #為s例項新增name屬性,並賦值

s.age=15

print(s.age, s.name) #列印s例項的age和name屬性值

class stu_2(student): #stu2繼承student類

pass #pass必須加,類定義內容無,必須加pass

a=stu_2()

a.score=90 #給a例項新增score屬性並賦值,繼承類並不會繼承__slot__限制

print(a.score) #列印a的score屬性值

@property #自帶的定義好的裝飾器,可以把類中的方法轉變為屬性,@property下的方法中變數只能是self乙個,其修飾下的方法的呼叫方式也變成了屬性的呼叫方式,其他方法的呼叫方式是函式的呼叫方式

乙個錯誤的示範:

這是正確的示範

#除了self變數,也可以是其他變數,但只能是乙個

關於@property的補充:如何在所謂的定義唯讀屬性下改變該唯讀屬性值

下面是唯讀模式有效的例項:

多重繼承:mixin表示新增的功能,但實際上任然是用類的方式定義的

Python基礎 使用 slots

定義乙個特殊的slots變數,來限制該class例項能新增的屬性 示例 usr bin env python3 coding utf 8 slots class student1 object pass defruntest1 s student1 s.name 蠟筆小新 s.age 6 s.sco...

python基礎 使用 slots

正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。先定義class class student object pass 然後,嘗試給例項繫結乙個屬性 s student s.name michael 動態給例項繫結乙個屬...

Python 物件導向 slots

預設情況下,python 用乙個字典來儲存乙個物件的例項屬性。這使得我們可以在執行的時候動態的給類的例項新增新的屬性 test test test.new key new value 然而這個字典浪費了多餘的空間 很多時候我們不會建立那麼多的屬性。因此通過slots可以告訴 python 不要使用字...