類的執行過程:先進行類的實例化,再進行內置函數(構造方法)的執行,執行調用的方法,再執行類的析構方法。
類屬性:當對象有共同屬性時,將其撥離出來,屬於類,直接使用類名調用(類名.類屬性)
面向對象的三特性:封裝、繼承、多態;
一、封裝
調用被封裝的內容實例:
class Person(): # 類的公共屬性 gj='中國' # 創建構造方法,根據類創建對象自動執行 def __init__(self,name,age,fight): self.name=name self.age=age self.fight=fight # 創建類的方法,即函數,類創建函數在括號中要帶"self def caocongzhandou(self): self.fight=self.fight-200 def info(self): print('{0},{1},{2},草叢戰斗力:{3}'.format(self.name,self.age,self.gj,self.fight)) def ziwoxiulian(self): self.fight=self.fight+100 def info1(self): print('{0},{1},自我修煉:{2}'.format(self.name,self.age,self.fight)) #根據類Person創建對象per1,將“'小明','18歲',1000”封裝到Per1name,age,fight屬性中 Per1=Person(u'小明','18歲',1000) # 根據類Person創建對象per2,將“'小花','20',800”封裝到Per1name,age,fight屬性中 Per2=Person(u'小花','20',800) Per1.info() Per2.info1() # 再執行一次程序 Per1.info() Per2.info1()
二、類的繼承
下面的例子將動物的共性都放到父類中,子類中展示每個動物特有的習性,最后每個子類再調用公共的習性
#!/usr/bin/env python #coding:utf-8 #author:wandering class Animal(): def __init__(self,name): self.name=name # 動物的共性都放到父類中 def eat(self): print('{0}吃'.format(self.name)) def drink(self): print('{0}喝'.format(self.name)) def la(self): print('{0}喝'.format(self.name)) # 子類貓繼承動物習性 class Cat(Animal): # 子類創建構造方法 def __init__(self,name): # 子類繼承父類的屬性 Animal.__init__(self,name) # 子類特有的習性 def cry(self): print(u'{0}喵喵叫'.format(self.name)) # 子類狗繼承動物習性 class Dog(Animal): # 子類創建構造方法 def __init__(self,name): # 子類繼承父類的屬性 Animal.__init__(self,name) # self.practise=practise def cry(self): print(U'{0}汪汪叫'.format(self.name)) # 對象C1賦值 C1=Cat(u'我家的小貓') # 對象C1調用父類的方法 C1.eat() C1.drink() C1.la() C1.cry() # 對象D1賦值 D1=Dog(u'隔壁老王家的小狗') # 對象D1調用父類的方法 D1.cry() D1.eat() D1.drink() D1.la()
python的繼承順序:
1.從左到右:
當子類繼承N個父類,父類中有同樣的方法,當子類調用父類方法時,順序是從左到右。
2.從下到上:
當子類繼承父類之后,子類又重寫了父類的方法,調用時先調用子類的方法