前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中调用父类同名方法

python中调用父类同名方法

作者头像
刘金玉编程
发布2019-08-13 15:13:15
3K0
发布2019-08-13 15:13:15
举报
文章被收录于专栏:编程创造城市

知识回顾:

上节我们学习了类的构造方法。

Python中构建构造方法主要使用__init__魔法方法。

实际项目操作中,由于类的继承导致可能覆盖同名的构造方法,导致只能使用子类的构造,而无法调用父类的构造方法。但其实可以采用super方法解决这个问题,今天的课程就是用来解决这个问题的。


本节知识视频教程 https://v.qq.com/x/page/y0911dr4dr1.html

文字讲解开始:

一、super函数

super()这个方法可以用来解决子类中调用父类同名构造方法。

Python版本过渡,在2.x版本中往往写成super(所在类的类名,self)这种形式,而在3.x版本开始后,就直接可以简写为super()来直接调用父类中的构造方法。

通过实际测试,我们知道:

1. super方法可以用在类中的任意的函数中,去调用父类中的方法。

2. super方法也可以调用超类中的方法。

二、超类知识

Student类是person类的子类,RunStudent是student类的子类,那么我们可以称runstudent类是person类的超类。

三、总结强调

1.掌握super方法在两种不同的Python版本中的不同的写法。

2.掌握super方法可以调用类和超类中的所有的同名方法。

3.掌握super方法调用类中同名函数时的方法调用顺序,默认是优先调用父类中的同名方法。

本节源代码:

代码语言:javascript
复制
class Person:
    def __init__(self):
        print("出生时会啼哭面向世界!")
    def say(self):
        print("我是Person")
    def walk(self):
        print("初始化人的走路功能")
class Student(Person):
    def __init__(self,name):
        super().__init__()
        self.name=name
    def getName(self):
        return self.name
    def say(self):
        super(Student,self).say()
        print("我是中国学生")
    def walk(self):
        print("我是student的walk")

class RunStudent(Student):
    def walk(self):
        super().walk()
        print("我可以快走啦!")

stu=Student("老刘")
print(stu.getName())
stu.say()

#调用父类的父类中的方法
runStu=RunStudent("刘金玉编程")
runStu.walk()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档