Python中调用父类的同名方法

面向对象设计时,无可避免的会涉及到父类和子类的关系

封装、集成、多态,大家都能娓娓道来

道理是一样的,针对不同的语言,面向对象开发也会遇到不同情况需要解决

今天学习下python中如何调用父类同名方法

PS: 如果不调用的话,子类同名方法对父类方法是直接覆盖的

python 2.2以前

class FooParent:
    def bar(self, message):
        print(message)

class FooChild(FooParent):
    def bar(self, message):
        FooParent.bar(self, message)

>>> FooChild().bar("Hello, World.")
Hello, World.

缺点:

  • 要修改父类名称时,麻烦

  • 多级、多继承时,基类方法会多次执行

2.2 以后

class FooParent:
    def bar(self, message):
        print(message)


class FooChild(FooParent):
    def bar(self, message):
        super(FooChild, self).bar(message)


>>> FooChild().bar("Hello, World.")
Hello, World.

优点:

  • 基类名称想怎么改就怎么改了
  • 多继承,不会多次调用基类方法

参考:如何在Python中调用父类的同名方法

 Jun 8th, 2013  python

原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值