上文介紹了python的類成員以及成員修飾符,從而了解到類中有字段、方法和屬性三大類成員,並且成員名前如果有兩個下劃線,則表示該成員是私有成員,私有成員只能由類內部呼叫。無論人或事物往往都有不按套路出牌的情況,python的類成員也是如此,存在著一些具有特殊含義的成員,詳情如下:
1. __doc__
表示類的描述資訊
classfoo:"""描述類資訊,這是用於看片的神奇"""
deffunc(self):pass
print foo.__doc__
#輸出:類的描述資訊
2.. __init__
構造方法,通過類建立物件時,自動觸發執行。
classfoo:def __init__(self, name):
self.name=name
self.age= 18obj= foo('wupeiqi') #自動執行類中的 __init__ 方法
3. __call__
物件後面加括號,觸發執行。
注:構造方法的執行是由建立物件觸發的,即:物件 = 類名() ;而對於 __call__ 方法的執行是由物件後加括號觸發的,即:物件() 或者 類()()
classfoo:def __init__(self):pass
def __call__(self, *args, **kwargs):print '__call__'obj= foo() #執行 __init__
obj() #執行 __call__
4. __dict__
類或物件中的所有成員
上文中我們知道:類的普通字段屬於物件;類中的靜態欄位和方法等屬於類,即:
classprovince:
country= 'china'
def __init__(self, name, count):
self.name=name
self.count=countdef func(self, *args, **kwargs):print 'func'
#獲取類的成員,即:靜態字段、方法、
print province.__dict__
#輸出:
obj1= province('hebei',10000)print obj1.__dict__
#獲取 物件obj1 的成員#輸出:
obj2= province('henan', 3888)print obj2.__dict__
#獲取 物件obj1 的成員#輸出:
print obj2.__dict__['name']
# 輸出:henan
5. __str__
如果乙個類中定義了__str__方法,那麼在列印 物件 時,預設輸出該方法的返回值。
classfoo:def __str__(self):return 'wupeiqi'obj=foo()printobj#輸出:wupeiqi
python類的成員 Python類成員
乙個是乙個類屬性,另乙個是乙個例項屬性。它們是不同的,但是它們之間的關係密切相關,使得它們在時間上看起來一樣。它與python查詢屬性的方式有關。有層次結構。在簡單的情況下,它可能如下所示 instance subclass superclass object built in type 當你在這樣...
python類成員 Python類之類的成員
對於乙個學c 的朋友來說,python類中,哪些是私有成員,哪些是共有成員,估計一直傻傻分不清。一 本篇部落格要解決的問題 python類中,哪些是私有成員?哪些是共有成員?二 關於python的類 所以,你寫的型別其本身有屬性和方法,而型別對應的例項,也有自己的屬性,不過並沒有方法。也就是說,py...
python類成員 Python 類的特殊成員解析
類的成員有兩種形式 公有成員,在任何地方都能訪問 私有成員,只有在類的內部才能方法,私有成員命名時,前兩個字元是下劃線。class foo def init self,name,age self.name name self.age age def show self 間接方法私有字段 return...