##類與可口可樂(lè)(2)
#1.魔術(shù)方法
def __init__():
在類里定義,在創(chuàng)建實(shí)例時(shí)能幫助你自動(dòng)的處理很多事情,比如新增實(shí)例屬性
__init__()是initialize(初始化)的縮寫(xiě)
#Demo 1.1
class Cocacola():
????formula = ['caffine','sugar','water','soda']
????def __init__(self):
? ? ? ? self.local_logo = '可口可樂(lè)'
????def drink(self):
????????print('Energy!')
coke = Cocacola()
print(coke.local_logo)
#>>>可口可樂(lè)'''
#Demo 1.2
class Cocacola:
????formula = ['caffine','sugar','water','soda']
????def __init__(self):
????????for elementin self.formula:
????????????print('Coke has {}!'.format(element))
????def drink(coke): #該函數(shù)未被執(zhí)行
????????????print('Energy!')
coke = Cocacola()
#Demo 1.3
#__init__()的說(shuō)明:
#1.__init__可以擁有自己的參數(shù)
#2.__init__可以自動(dòng)執(zhí)行,不需要使用obj.__init__()的方式來(lái)執(zhí)行
class Cocacola:
????formula = ['caffine','sugar','water','soda']
? ? def __init__(self,logo_name):
????????????self.local_logo = logo_name
? ? ? ? ????#左邊是變量作為類的屬性,右邊是傳入這個(gè)參數(shù)作為變量
????? ? ? ? #變量的復(fù)制所存儲(chǔ)的結(jié)果取決于初始化的時(shí)候所傳進(jìn)來(lái)的參數(shù)logo_name
? ? ????? ? #傳進(jìn)來(lái)什么就將是什么
????def drink(self):
????????????print('Energy!')
coke = Cocacola('可口可樂(lè)')
print(coke.local_logo)
#2.類的繼承(inheritance)
#Demo 2.1 配方的重定義
#所有子品類都會(huì)繼承可口可樂(lè)的品牌--->類的繼承(inheritance)
class Cocacola:
????calories =140
? ? sodium =45
? ? total_carb =39
? ? caffine =34
? ? ingredients = [
????????????????'High Fructose Corn Syrup'
????????????????'Carbonated Water'
????????????????'Phosphoric Acid'
????????????????'Natural Flavors'
????????????????'Caramel Color'
????????????????'Caffine'????????]
????def __init__(self,logo_name):
????????????????self.local_logo = logo_name
????def drink(self):
????????????????print('You got {} cal energy!'.format(self.calories))
class CaffineFree(Cocacola):
????#在新的類CaffineFree后的括號(hào)里放入Cocacola,表示這個(gè)欸繼承于父類CocaCola
? ? #父類中的變量完全被子類繼承。有改動(dòng)可以進(jìn)行覆蓋(Override)
? ? caffine =0
? ? ingredients = [
????????????????'High Fructose Corn Syrup'
????????????????'Carbonatd Water'
????????????????'Phosphoric Acid'
????????????????'Natural Flavors'
????????????????'Caramel Color'????????]
coke_a = CaffineFree('Cocacola-FREE')
coke_a.drink()