python类继承的原理
python类继承的原理,大家完全可以将其想象为调鸡尾酒,就是电视上调酒师拿着一个杯子甩来甩去的跟扔印度飞饼一样的那种,我们不难发现,调鸡尾酒会用很多的原材料来勾兑(至于严格上来说是不是勾兑鄙人也不清楚),比如什么威士忌啦、汽水啦、果汁啦、薄荷啦、盐巴啦、橄榄啦等等,有时候还会打个火......如此一来,鸡尾酒不仅就具备了多种原材料的味道,而且还具备了多种原材料调和出来的味道,更关键的是具备了鸡尾酒这样的文化属性。我们可以说,鸡尾酒就是继承了多种原材料的属性,并有可能发展出了自己的属性。
python类的继承也大概如此,而且从调鸡尾酒的原理我们也可以进一步推出python类的继承的好处。
python类继承的强大功能和作用
高效:有了原材料(python编程中的各种父类),我们就可以很快地调制出新品种的酒水饮料(新的python类),以用于满足不同的顾客(满足python编程中不同的功能需求),而不用从源头开始制曲酿酒,所以可以说通过类的继承是非常高效的。比类的继承更高效的应该是python类的多态,这个我们将在下一个章节中进行介绍。
python类的继承实例
很多python的文档或教程在讲到python类的继承的时候会用animal来讲解,鄙人之前自学python的时候接触到的好像也是这个,现在我们创新(叛逆)一点,来创建一个程序员的类,并使用继承的方式,代码如下:
class Person(): #声明一个Person类
def __init__(self, name):
self.name = name
def person_speak(self):
print('大家好。')
class Workers(Person): #声明的打工者的类单继承了Person这个类(实际上还有一个object基类)
def __init__(self, name, age):
Person.__init__(self,name) #可以直接调用Person类的初始化方法,注意参数要与上面的Person类的保持一致。
self.age = age
def workers_speak(self):
print('我是个打工者,名字叫%s,今年%s岁!' %(self.name, self.age))
class GoodGuy(Person):
def __init__(self,name,natrue):
Person.__init__(self, name)
self.natrue = natrue
def goodguy_speak(self):
print('我性格%s,对爱情就像对科学计算一样严谨认真,是一个好人,这一点是证据确凿的,因为每次跟人表白,她们总爱说我是个Good Guy!'%(self.natrue))
class Programmer(Workers, GoodGuy): #声明一个程序员的类,继承了Workers和GoodGuy类
def __init__(self, name, age, occupation, natrue, hair, companion):
Workers.__init__(self,name,age)
GoodGuy.__init__(self,name,natrue)
self.occupation = occupation
self.hair = hair
self.companion = companion
def programmer_speak(self):
print('我是个%s,厉不厉害不清楚,但头发是%s的,而且%s!' %(self.occupation, self.hair, self.companion))
programmer = Programmer('小明','28','程序员','内向','秃顶','单身')
programmer.person_speak() #注意,我们并没有在Programmer类中创建person_speak()实例方法,但是通过继承直接获得
programmer.workers_speak() #同上,注意,Programmer类并没有直接继承Person类,为什么也可以调用person_speak(),见下面的代码解析
programmer.goodguy_speak()
programmer.programmer_speak()
————————————————————————————————————————————
程序输出:
大家好。
我是个打工者,名字叫小明,今年28岁!
我性格内向,对爱情就像对科学计算一样严谨认真,是一个好人,这一点是证据确凿的,因为每次跟人表白,她们总爱说我是个Good Guy!
我是个程序员,厉不厉害不清楚,但头发是秃顶的,而且单身!
#原创内容,转载请注明“大器编程x1y1z1.com”
更多实例代码的解析、类的继承原理,及更多有趣、实用的python语法实例,可以参考下面的内容:
python类的继承原理,好比调鸡尾酒,用继承创建单身程序员类实例https://www.x1y1z1.com/python/pyinheritance.html