標籤:資料 個數 uid self nes ict 就是 方式 IV
1、對象就是執行個體,什麼是執行個體
類啟動並執行過程就是執行個體化的過程,執行個體化產生的結果就是產生了一個執行個體
class的牛逼之處就是不用手動的return,他會載入完函數之後,自動return __init__這個函數裡面的字典,字典當中封裝了資料屬性
函數屬性就是屬於類的
2、執行個體化
只要用類名加()的方式運行,(在類中這個運行叫執行個體化)首先會運行__init__這個函數
class Chinese:#定義了Chinese這個類 dang="當"#定義了一個資料屬性dang def __init__(self,name,age,gender): print("我是初始化函數,我開始運行了") self.mingzi=name self.nainji=age self.xignbie=gender#這樣寫完之後會自動return print("我結束啦") def suiditutan():#定義了一個函數屬性 print("朝著牆上就是一口黃痰") def chadui(self):#又定義了一個函數屬性 print("%s 插到了前面" %self)p1=Chinese("北爺",33,"female")C:\python35\python3.exe D:/pyproject/day24/對象相關知識.py我是初始化函數,我開始運行了我結束啦
執行個體化的過程就是運行__init__這個函數,從而產生一個字典,這個字典就是執行個體(對象)
字典當中封裝的是資料屬性
查看下p1這個執行個體的內容
class Chinese:#定義了Chinese這個類 dang="當"#定義了一個資料屬性dang def __init__(self,name,age,gender): print("我是初始化函數,我開始運行了") self.mingzi=name self.nainji=age self.xignbie=gender#這樣寫完之後會自動return print("我結束啦") def suiditutan():#定義了一個函數屬性 print("朝著牆上就是一口黃痰") def chadui(self):#又定義了一個函數屬性 print("%s 插到了前面" %self)p1=Chinese("北爺",33,"female")print(p1.__dict__)C:\python35\python3.exe D:/pyproject/day24/對象相關知識.py我是初始化函數,我開始運行了我結束啦{‘nainji‘: 33, ‘xignbie‘: ‘female‘, ‘mingzi‘: ‘北爺‘}
注意:__init__裡面不要有return 加了就會報錯,class會自動幫你return
3、執行個體屬性可以訪問到類屬性
class Chinese:#定義了Chinese這個類 dang="當"#定義了一個資料屬性dang def __init__(self,name,age,gender):#self就是p1本身 print("我是初始化函數,我開始運行了") self.mingzi=name#p1.mingzi=name self.nianji=age#p1.nainji=age self.xingbie=gender#這樣寫完之後會自動return print("我結束啦") def suiditutan():#定義了一個函數屬性 print("朝著牆上就是一口黃痰") def chadui(self):#又定義了一個函數屬性 print("%s 插到了前面" %self)p1=Chinese("北爺",33,"female")print(p1.__dict__)#字典裡面只有資料屬性print(p1.__dict__["nianji"])#用字典的方式取字典裡面的valueprint(p1.__dict__["mingzi"])print(p1.nianji)#執行個體調用nianjiprint(p1.mingzi)#這是執行個體的資料屬性# print(p1.mingzi222)#會報錯,執行個體調用方法的時候會從__dict__裡面找,找不到就報錯了print(p1.dang)#用執行個體去調用類的資料屬性,雖然__dict__裡面沒有,但是上一級有C:\python35\python3.exe D:/pyproject/day24/對象相關知識.py我是初始化函數,我開始運行了我結束啦{‘nianji‘: 33, ‘xingbie‘: ‘female‘, ‘mingzi‘: ‘北爺‘}33北爺33北爺當
執行個體在調用屬性的時候,先找執行個體的屬性字典裡面,如果沒有的話,就去類的屬性字典裡面找,類裡面在沒有的話就報錯了
4、類調用方法直接用類名加()
class Chinese:#定義了Chinese這個類 dang="當"#定義了一個資料屬性dang def __init__(self,name,age,gender):#self就是p1本身 print("我是初始化函數,我開始運行了") self.mingzi=name#p1.mingzi=name self.nianji=age#p1.nainji=age self.xingbie=gender#這樣寫完之後會自動return print("我結束啦") def suiditutan():#定義了一個函數屬性 print("朝著牆上就是一口黃痰") def chadui(self):#又定義了一個函數屬性 print("%s 插到了前面" %self.mingzi)p1=Chinese("北爺",33,"female")Chinese.suiditutan()Chinese.chadui(p1)C:\python35\python3.exe D:/pyproject/day24/對象相關知識.py我是初始化函數,我開始運行了我結束啦朝著牆上就是一口黃痰北爺 插到了前面
5、用執行個體調用方法
class Chinese:#定義了Chinese這個類 dang="當"#定義了一個資料屬性dang def __init__(self,name,age,gender):#self就是p1本身 print("我是初始化函數,我開始運行了") self.mingzi=name#p1.mingzi=name self.nianji=age#p1.nainji=age self.xingbie=gender#這樣寫完之後會自動return print("我結束啦") def suiditutan(self):#定義了一個函數屬性 print("%s 朝著牆上就是一口黃痰" %self.mingzi) def chadui(self):#又定義了一個函數屬性 print("%s 插到了前面" %self.mingzi)p1=Chinese("北爺",33,"female")Chinese.suiditutan(p1)#類調用方法Chinese.chadui(p1)#類調用方法p1.chadui()#執行個體調用方法,會自動把p1傳給selfp1.suiditutan()#執行個體調用方法,會自動把p1傳給selfC:\python35\python3.exe D:/pyproject/day24/對象相關知識.py我是初始化函數,我開始運行了我結束啦北爺 朝著牆上就是一口黃痰北爺 插到了前面北爺 插到了前面北爺 朝著牆上就是一口黃痰
6、再執行個體化一個p2 增加一個類的函數屬性,用執行個體調用一下
class Chinese:#定義了Chinese這個類 dang="當"#定義了一個資料屬性dang def __init__(self,name,age,gender):#self就是p1本身 self.mingzi=name#p1.mingzi=name self.nianji=age#p1.nainji=age self.xingbie=gender#這樣寫完之後會自動return def suiditutan(self):#定義了一個函數屬性 print("%s 朝著牆上就是一口黃痰" %self.mingzi) def chadui(self):#又定義了一個函數屬性 print("%s 插到了前面" %self.mingzi) def eatfood(self,food): print("%s 正在吃%s" %(self.mingzi,food))p1=Chinese("北爺",33,"female")p1.eatfood("黃痰")p2=Chinese("喵爺",28,"female")p2.suiditutan()#執行個體調用類的函數屬性,會自動把p1傳給selfp2.eatfood("黃燜雞米飯")#執行個體調用類的函數屬性,會自動把p1傳給selfC:\python35\python3.exe D:/pyproject/day24/對象相關知識.py北爺 正在吃黃痰喵爺 朝著牆上就是一口黃痰喵爺 正在吃黃燜雞米飯
python的物件導向-執行個體(對象)的相關知識、執行個體化