python使用技巧(二十):super()方法
2023-09-14 09:15:32 时间
描述
super() 函数是用于调用父类(超类)的一个方法。
super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
语法
以下是 super() 方法的语法:
super(type[, object-or-type])
测试代码1:super().add(x) #等价于super().add(x) => y = x+1 print(y)
测试代码2: super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类 FooChild 的对象转换为类 FooParent 的对象
FooChild(FooParent)等价于FooParent(object)就可进行调用。
这里调用了父类参数FooParent中的方法,只需使用时将self换成输入参数即可。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class FooParent(object):
def __init__(self):
self.parent = 'I\'m the parent.'
print ('Parent')
def bar(self,message):
print ("%s from Parent" % message)
class FooChild(FooParent):
def __init__(self):
# super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类 FooChild 的对象转换为类 FooParent 的对象
super(FooChild,self).__init__()
print ('Child')
#同时调用上下bar和bars
def bars(self,message):
super(FooChild, self).bar(message) #这里调用了父类参数FooParent中的方法,只需使用时将self换成输入参数即可
print ('Child bar fuction')
print (self.parent)
if __name__ == '__main__':
fooChild = FooChild() #输出的是两个初始化参数
fooChild.bars('HelloWorld')
# fooChild2 = FooChild('HelloWorld2') #如何给参数
结果:
Parent
Child
HelloWorld from Parent
Child bar fuction
I'm the parent.
相关文章
- crontab 用法(执行python文件)[通俗易懂]
- python skitlearn_Python sklearn
- python第三方库的安装方法有哪些_如何安装python的第三方库
- 【Python 局域网控制】——做一个超简单的局域网指令控制电脑
- 【说站】python使用f.read()返回字符串
- 【说站】python字符串方法format()如何使用
- 【说站】python有几种排序的方法
- 【说站】Python中Series常用方法整理
- 【说站】python gevent的原理分析
- 【说站】python参数默认值如何使用
- 【说站】python绘制散点图的两种方法
- 一文轻松掌握Python语言命名规则
- python交互模式下方向键乱码的正确解决方法
- Python多线程编程之多线程加锁详解编程语言
- python进阶Garbage collection垃圾回收1详解编程语言
- 一步一步学会在Linux上运行Python程序(linux运行python程序)
- 使用Python执行Linux命令的方法(python调用linux命令)
- 如何在 Fedora 上使用 Poetry 来管理你的 Python 项目?
- python实现系统状态监测和故障转移实例方法
- 使用python获取进程pid号的方法
- python实现堆栈与队列的方法
- Python实现根据指定端口探测服务器/模块部署的方法