一文讲透python类的继承原理,好比调制鸡尾酒

本文通过调鸡尾酒的比喻,生动解释了Python类继承的原理,强调了其在编程中的高效性。通过创建Person、Workers、GoodGuy及Programmer类,展示了多继承的实例,说明了如何利用继承快速构建复杂类。程序员类Programmer继承了Workers和GoodGuy类,实现了不同特性的组合。通过实例调用各个方法,证明了继承的灵活性和实用性。
摘要由CSDN通过智能技术生成

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类的继承原理,好比调鸡尾酒,用继承创建单身程序员类实例icon-default.png?t=M5H6https://www.x1y1z1.com/python/pyinheritance.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值