這篇文章主要介紹了在
python
中使用__slots__
方法的詳細教程
,__slots__
方法是python
的乙個重要內建類方法
**基於
python2.x
版本需要的朋友可以參考下
正常情況下,當我們定義了乙個
class
,建立了乙個
class
的例項後,我們可以給該例項
繫結任何屬性和方法,這就是動態語言的靈活性。先定義
class
>>> class student(object):
... pass
然後,嘗試給例項繫結乙個屬性:
>>> s = student()
>>> s.name = 'michael' #
動態給例項繫結乙個屬性
>>> print s.name
michael
還可以嘗試給例項繫結乙個方法:
>>> def set_age(self, age): #
定義乙個函式作為例項方法
... self.age = age
>>> from types import methodtype
>>> s.set_age = methodtype(set_age, s, student) #
給例項繫結乙個方法
>>> s.set_age(25) #
呼叫例項方法
>>> s.age #
測試結果
但是,給乙個例項繫結的方法,對另乙個例項是不起作用的:
>>> s2 = student() #
建立新的例項
>>> s2.set_age(25) #
嘗試呼叫方法
traceback (most recent call last):
file "", line 1, in
attributeerror: 'student' object has no attribute 'set_age'
為了給所有例項都繫結方法,可以給
class
繫結方法:
>>> def set_score(self, score):
... self.score = score
>>> student.set_score = methodtype(set_score, none, student)
給class
繫結方法後,所有例項均可呼叫:
>>> s.set_score(100)
>>> s.score
>>> s2.set_score(99)
>>> s2.score
通常情況下,上面的
set_score
方法可以直接定義在
class
中,但動態繫結允許我們在程
序執行的過程中動態給
class
加上功能,這在靜態語言中很難實現。
使用__slots__
在 C string 中的用法
1。c 中 字串常量可以以 開頭聲名,這樣的優點是轉義序列 不 被處理,按 原樣 輸出,即我們不需要對轉義字元加上 反斜扛 就可以輕鬆coding。如 string filepath c docs source a.txt rather than c docs source a.txt 2。如要在乙...
int在python中的含義以及用法
python int 函式描述 int 函式用於將乙個字串或數字轉換為整型。語法以下是 int 方法的語法 class int x,base 10 引數 x 字串或數字。base 進製數,預設十進位制。返回值返回整型資料。例項以下展示了使用 int 方法的例項 234 5678 9101112 in...
在python中合法的變數 在python中的變數
當為乙個值起名字的時候,它將會儲存在記憶體中,我們把這塊記憶體稱為變數 variable 在大多數語言中,把這種行為稱為 給變數賦值 或 把值儲存在變數中 不過,python與大多數其他計算機語言的做法稍有不同,它並不是把值儲存在變數中,而更像是把名字 貼 在值的上邊。所以,有些 python 程式...