若要限制某一例項只具有某幾個屬性,該怎麼辦呢?
在定義class的時候,定義__slots__變數,來限制該class例項能新增的屬性:
舉例:
>>> class student(object):
__slots__ = ('name','age')
>>> s = student()
>>> s.name='xiaoh'
>>> s.age=25
>>> s.mobie='13955698985' #因未繫結該屬性,所以會報 attributeerror
traceback (most recent call last):
file "", line 1, in s.mobie='13955698985'
attributeerror: 'student' object has no attribute 'mobie'
說明:使用__slots__
要注意,__slots__
定義的屬性僅對當前類例項起作用,對繼承的子類是不起作用的:除非在子類中也定義__slots__
,子類中定義後,子類例項允許定義的屬性就是自身的__slots__
加上父類的__slots__
。
python建立例項屬性 Python學習筆記
這是學習廖雪峰老師python教程的學習筆記 1 概覽 1.1 例項繫結屬性 class student object def init self,name self.name name s student bob 建立例項 s s.score 90 為s新增乙個score屬性 1.2 類繫結屬性 ...
python學習筆記 類屬性 例項屬性
上篇 class tool object 類屬性 num 0 方法 def init self,name 例項屬性 self.name name tool.num 1 tool1 tool a 例項物件 tool2 tool b 例項物件 tool3 tool c 例項物件 類屬性 num 0 例項...
Python學習 例項屬性和類屬性
由於python是動態語言,根據類建立的例項可以任意繫結屬性。給例項繫結屬性的方法是通過例項變數,或者通過self變數 class student object def init self,name self.name name s student bob s.score 90但是,如果studen...