python 物件導向程式設計的 slots

2022-04-29 10:24:10 字數 1186 閱讀 3623

同乙個類下,不同例項定義的屬性或者方法,其他例項如果沒有定義是不能使用的

#

定義乙個類

class

student(object):

pass

#給類繫結乙個例項

s=student()

#給例項繫結乙個屬性

s.name='

micheal

's.name

#'micheal'

s1=student()

s1.name

#報錯attributeerror: 'student' object has no attribute 'name'

我們如果想要給所有例項都繫結屬性或者方法,只需給類繫結屬性或者方法就可以了,這樣所有的例項都可以呼叫

但是我們想要限制例項的屬性,比如說例項只能新增name和age屬性

在定義類時,使用__slots__變數,來限制類例項能新增的屬性

__slots__變數的使用方法

class

student(object):

__slots__ = ('

name

', '

age') #

用tuple定義允許繫結的屬性名稱

s = student() #

建立新的例項

s.name = '

michael'#

繫結屬性'name'

s.age = 25 #

繫結屬性'age'

s.score = 99 #

繫結屬性'score'

traceback (most recent call last):

file

"", line 1, in

attributeerror:

'student

' object has no attribute '

score

'

要注意的是,__slots__變數定義的屬性僅對當前類的例項起作用,對繼承的子類的例項是不起作用的

class

graduatestudent(student):

pass

g =graduatestudent()

g.score = 9999 #

這樣是沒有問題的

Python物件導向的程式設計

1 使用類名後跟一對圓括號來建立乙個物件 例項。2 python中的self等價於c 中的this指標。3 init 方法類似於c 中的constructor。4 del 方法類似於c 中的destructor。5 域是屬於乙個物件或類的變數。域有兩種型別 例項變數 物件的變數 和類變數 類的變數 ...

Python 物件導向的程式設計

table of contents 物件導向程式設計 類和物件是物件導向程式設計的兩個主要方面。類 建立乙個新型別,而 物件 是這個類的 例項 類的物件可以使用屬於類的變數和函式,類的變數和函式有兩種 屬於每個例項 類的物件或屬於類本身。就像 c 的類的靜態變數和函式一樣。python 有乙個變數指...

Python 物件導向的程式設計

什麼是物件?物件導向 oop 物件導向的程式語言 物件導向的程式設計思想,將所有的功能統一儲存到對應的物件中 比如,媽媽功能儲存到媽媽的物件中,孩子的功能儲存到孩子物件中 要使用某個功能,直接找到對應的物件即可 這種方式編寫的 比較容易閱讀,並且比較易於維護,容易復用。但是這種方式編寫,不太符合常規...