Python基礎類與繼承學習
阿新 • • 發佈:2018-11-13
#類 class CocaCola: formula = ['caffeine','sugar','water','soda'] def drink(self): print('Energy!') coke = CocaCola() coke.drink() print('\n') #self class Coca: formula = ['caffeine','sugar','water','soda'] def drink(coke): # 把self改為coke print('Energy!') coke = Coca() coke.drink() print('\n') #魔術方法 class CocaCo(): formula = ['caffeine','sugar','water','soda'] def __init__(self): self.local_logo = '可口可樂' def drink(self): print('Energy!') coke = CocaCo() print(coke.local_logo) print('\n') #父類 class People(object): #初始化函式 def __init__(self,name,age,weight): self.name =name self.age =age self.weight = weight #物件函式 def sleep(self): print('這是People類中的sleep函式') #根據工作時間,計算體重是否減少的功能函式 def work_time(self,time): #如果工作時間在8-12小時範圍,體重-2斤 #如果超過12小時,體重-5斤 if 8<time<=12: self.weight -= 2 elif time>12: self.weight -= 5 #宣告Man類,繼承自People類 class Man(People): def __init__(self,name,age,sex,weight,height): #呼叫父類的初始化,將父類的屬性進行初始化,並且將self物件作為引數傳遞到父類的初始化函式中 super(Man,self).__init__(name,age,weight) #初始化當前類擁有的屬性 self.sex = sex self.height = height def drink(self): print('這人光喝酒') def sleep(self): #在這個sleep函式中,可以執行和父類中完全不同的功能 print('這是Man類中的sleep函式') #2.重寫work_time函式 def work_time(self,time): #2.1根據時間計算體重 super(Man,self).work_time(time) #2.2根據體重判斷身材 #身高-105 = 體重 身材標準 #身高-105 > 體重 身材偏瘦 #身高-105 > 體重 身材偏胖 result = self.height-105 if result>self.weight: print('偏瘦') elif result<self.weight: print('偏胖') else: print('標準') #建立People物件p1 p1 = People('張三',22,170) p1.sleep() p1.work_time(13) print('p1工作之後的體重:%s'%p1.weight) # 父類不能呼叫子類的函式 # p1.drink() #建立Man類物件 m = Man('李四',22,'男',70,190) m.sleep() #m在執行work_time時,除了計算體重還要判斷身材是否標準 m.work_time(13) print('m工作之後的體重:%s'%m.weight) print(m.name) print(m.age) print(m.sex) print('\n') #多繼承 class Base(object): def __init__(self): print("base_init") class A(Base): def __init__(self): print('start_A') # Base.__init__(self) super(A, self).__init__() print('finish_A') class B(Base): def __init__(self): print('start_B') # Base.__init__(self) super(B, self).__init__() print('finish_B') class C(A,B): pass c = C(); print('\n') class Base(object): def __init__(self): print("base_init") class A(Base): def __init__(self): print('start_A') # Base.__init__(self) super(A, self).__init__() print('finish_A') class B(object): def __init__(self): print('start_B') # Base.__init__(self) super(B, self).__init__() print('finish_B') class C(A,B): pass c = C();