##类与可口可乐(2)
#1.魔术方法
def __init__():
在类里定义,在创建实例时能帮助你自动的处理很多事情,比如新增实例属性
__init__()是initialize(初始化)的缩写
#Demo 1.1
class Cocacola():
formula = ['caffine','sugar','water','soda']
def __init__(self):
self.local_logo = '可口可乐'
def drink(self):
print('Energy!')
coke = Cocacola()
print(coke.local_logo)
#>>>可口可乐'''
#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): #该函数未被执行
print('Energy!')
coke = Cocacola()
#Demo 1.3
#__init__()的说明:
#1.__init__可以拥有自己的参数
#2.__init__可以自动执行,不需要使用obj.__init__()的方式来执行
class Cocacola:
formula = ['caffine','sugar','water','soda']
def __init__(self,logo_name):
self.local_logo = logo_name
#左边是变量作为类的属性,右边是传入这个参数作为变量
#变量的复制所存储的结果取决于初始化的时候所传进来的参数logo_name
#传进来什么就将是什么
def drink(self):
print('Energy!')
coke = Cocacola('可口可乐')
print(coke.local_logo)
#2.类的继承(inheritance)
#Demo 2.1 配方的重定义
#所有子品类都会继承可口可乐的品牌--->类的继承(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后的括号里放入Cocacola,表示这个欸继承于父类CocaCola
#父类中的变量完全被子类继承。有改动可以进行覆盖(Override)
caffine =0
ingredients = [
'High Fructose Corn Syrup'
'Carbonatd Water'
'Phosphoric Acid'
'Natural Flavors'
'Caramel Color' ]
coke_a = CaffineFree('Cocacola-FREE')
coke_a.drink()