1、例項屬性和類屬性
給例項繫結屬性的方法是通過例項變數,或者通過self變數:
classchinese:def __init__(self,name,***,age):
self.name=name
self.***=***
self.age=age
s1= chinese('alex','man','22')
s2= chinese('alex2','woman','23')
s3= chinese('alex3','man','21')
類屬性:
classchinese:
country= 'china'
def __init__(self,name,***,age):
self.name=name
self.***=***
self.age= age
country = 'china'就是類chinese的屬性
classchinese:
name= 'china'country= 'china2'
def __init__(self,name,***,age):
self.name=name
self.***=***
self.age=age
s1= chinese('alex','man','22')
s2= chinese('alex2','woman','23')
s3= chinese('alex3','man','21')print(s1,s1.__dict__)print(s1.name)#顯示的是alex,不會顯示類屬性china
print(s1.country)
從上面的例子可以看出,在編寫程式的時候,千萬不要對例項屬性和類屬性使用相同的名字,因為相同名稱的例項屬性將遮蔽掉類屬性,但是當你刪除例項屬性後,再使用相同的名稱,訪問到的將是類屬性。
例項屬性屬於各個例項所有,互不干擾;
類屬性屬於類所有,所有例項共享乙個屬性;
不要對例項屬性和類屬性使用相同的名字,否則將產生難以發現的錯誤。
例項屬性屬於各個例項所有,互不干擾;
類屬性屬於類所有,所有例項共享乙個屬性;
不要對例項屬性和類屬性使用相同的名字,否則將產生難以發現的錯誤。
2、 __dict__ : 類的屬性(包含乙個字典,由類的資料屬性組成)
1) 內建的資料型別沒有__dict__屬性 / int,list dict沒有2) 每個類有自己的__dict__屬性,就算存著繼承關係,父類的__dict__ 並不會影響子類的__dict__
類的靜態函式,類函式、普通函式,全域性變數以及一些內建的屬性都放在類_dict_裡的3) 物件也有自己的__dict__屬性, 儲存self.*** 資訊,父子類物件公用__dict__/ 乙個字典,物件的資料屬性組成
3、 __bases__ : 類的所有父類構成元素(由所有父類組成的元組), _bases_檢視所有繼承的父類,
classparentclass1:pass
classparentclass2:pass
class subclass1(parentclass1):#單繼承,基類是parentclass1,派生類是subclass1
pass
class subclass2(parentclass1,parentclass2):#python 支援多繼承,用逗號分隔開多個繼承類
pass
print(subclass1.__bases__)print(subclass2.__bases__)
結果元組表示:
__doc__ :類的文件字串
__name__: 類名
__module__: 類定義所在的模組(類的全名是'__main__.classname',如果類位於乙個匯入模組mymod中,那麼classname.__module__ 等於 mymod)
python內建類 Python 類的內建方法
usr bin env python coding utf 8 python內建方法 class a n a def f2 self print from a class b a n b def f1 self print from b def f2 self print f2 from b cla...
python類中包含類 徹底搞懂Python中的類
python類的定義 python 中定義乙個類使用 class 關鍵字實現,其基本語法格式如下 class 類名 多個 0 類屬性.多個 0 類方法.注意,無論是類屬性還是類方法,對於類來說,它們都不是必需的,可以有也可以沒有。另外,python 類中屬性和方法所在的位置是任 意的,即它們之間並沒...
python 類的內建方法
1.doc 列印類的備註 class animal object 建立動物類 def run self 動物都會跑 pass a animal 列印animal類的備註 print a.doc 2.call 將類進行例項化後,呼叫該例項時,會執行 call 方法。注意 類中無 call 方法時,例項...