標籤:物件導向 setattr ati name attr ... 直接 run 執行個體變數
Python物件導向1、class定義
#定義類class Emp: pass
2、靜態變數
class Emp: #靜態變數,通過類直接存取 id = 100 #__開頭的是私人屬性 __age = 20#通過類直接存取print Emp.id
3、建構函式和執行個體方法
建構函式名稱固定,就是__init__方法。
class Emp: #執行個體方法 def add(self , a, b): return a + b #建構函式 def __init__(self , name ,age): #執行個體變數 self.name = name self.age = age
4、解構函式
class Emp: #解構函式 def __del__(self): print "銷毀對象!"#建立對象e = Emp()#銷毀對象e = None#刪除對象的成員del e.name#刪除變數del e
5、內建屬性
#內建屬性判斷print hasattr(e , "age")print hasattr(e , "name")print getattr(e , "age")setattr(e , "age" , 40)print getattr(e , "age")print getattr(e , "name" , "nobody")delattr(e, "age")print hasattr(e , "age")#訪問類的屬性#__dict__訪問類的成員d = Emp.__dict__print d#訪問類名print Emp.__name__#所有父類構成的元組print Emp.__bases__
6、多重繼承
class Horse: #__開頭的方法時私人方法 def __run(self): print "runing~~~" def eat(self): print "eating..." def __init__(self , name): self.name = nameclass Donkey: money = 100 def __init__(self ,age): self.age = age#多重繼承class Luozi(Horse , Donkey): def eat(self): print "WWWWWWWWWWW" def __init__(self): #顯式調用父類建構函式 Horse.__init__(self , "tom") Donkey.__init__(self ,12)l1 = Luozi()print l1.eat()
Python物件導向