1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 5 class Chinese: 6 country = 'china' 7 8 def __init__(self,name,age): 9 self.name = name 10 self.age = age 11 12 def talk(self): 13 print('say chinese',self.name) 14 15 16 #類的第一種用法:實例化 17 p1 = Chinese('egon',18) 18 p1.talk() 19 print(p1.name) 20 print(p1.age) 21 22 #類的第二種用法:屬性引用(增刪改查) 23 print(Chinese.country) #類的數據屬性 24 print(Chinese.__init__) #類的函數屬性 25 Chinese.__init__(1,2,3) #錯誤 26 27 print(Chinese.__dict__) #查看類的屬性字典,或者說名稱空間 28 print(Chinese.country) 29 print(Chinese.__dict__['country']) 30 31 #類型與類是統一的 32 p1 = Chinese('egon',18) 33 p2 = Chinese('alex',1000) 34 print(id(p1.country)) 35 print(id(p2.country)) 36 print(id(Chinese.country)) 37 38 print(Chinese.talk) 39 print(p1.talk) 40 print(p2.talk) 41 42 print(p1) 43 p1.talk() 44 print(p2) 45 p2.talk() 46 Chinese.talk(p1) 47 48 #定義在類內部的變量,是全部對象共有的,id全同樣 49 #定義在類內部的函數,是綁定到全部對象的,是給對象來用,obj.func() 會把obj自己當作第一個參數出入 50 51 #綁定方法:綁定到誰身上,就是給誰用的,誰來調用就會自動把本身當作第一個參數傳入