Super函数用法

主要用于调用父类函数

代码演示

class A:
def __init__(self):
self.n = 2
print('此时执行A的自定义函数,self的n值为',self.n) def add(self, m):
print('self is {0} @A.add'.format(self)) print('执行A的add函数前N值为',self.n)
self.n += m
print('A的add函数执行完毕,此时N值为',self.n) class B(A):
def __init__(self):
self.n = 3
print('此时执行B的自定义函数,self的n值为', self.n) def add(self, m):
print('self is {0} @B.add'.format(self)) print('准备执行父类的add函数')
super().add(m)
print('父类add函数执行完毕') print('执行B的add函数前N值为', self.n)
self.n += 3
print('此时执行B的自定义函数,self的n值为', self.n) b = B()
print('------------------------------')
b.add(2)
print('------------------------------')
print(b.n)

首先初始化子类

b = B()

初始化之后,b.n值为3,对子类进行add(2)操作,B的add函数首先执行

print('self is {0} @B.add'.format(self))

执行结果:



然后进入父类函数A的add执行模块:

print('准备执行父类的add函数')
super().add(m)
print('父类add函数执行完毕')

父类A类中首先执行Add函数的打印操作,此时传入的m值依旧是2,但是执行的是A的add函数,执行后结果为5:



执行结果之后,执行子类b自己的add函数,该add函数只会自动加3:

print('准备执行父类的add函数')
super().add(m)
print('父类add函数执行完毕')

执行结果为:

Python3中Super函数的使用的更多相关文章

  1. 用python实现矩阵转置,python3 中zip()函数

    前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再 ...

  2. Python3中super()的参数传递

    1. super([type[, object-or-type]]) super() 在使用时至少传递一个参数,且这个参数必须是一个类. 通过super()获取到的是一个代理对象,通过这个对象去查找父 ...

  3. Python中super函数的用法

    之前看python文档的时候发现许多单继承类也用了super()来申明父类,那么这样做有何意义? 从python官网文档对于super的介绍来看,其作用为返回一个代理对象作为代表调用父类或亲类方法.( ...

  4. Python3中map函数的问题

    在Python2中map函数会返回一个list列表,如代码: >>> def f(x, y): return (x, y) >>> l1 = [ 0, 1, 2, ...

  5. python3中reduce()函数的使用方法示例

      reduce() 函数会对参数序列中元素进行累积,下面这篇文章主要给大家介绍了关于python中reduce()函数的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学 ...

  6. python2和python3中filter函数

    在python2和python3中filter是不同的,其中在python2中filter返回的是一个list,可以直接使用 >>> a = [1,2,3,4,5,6,7] > ...

  7. python3中map函数

    map函数是Python里面比较重要的函数 map函数后面必须接的是序列(元组/列表/字符串) 在python2中执行一些语句 >>> map(str,[1,2,3,4]) ['1' ...

  8. python3中匿名函数做参数,匿名函数做实参,eval关键字

    一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...

  9. Python3中的函数 大全

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但也可以自己创建 ...

  10. python3中shuffle函数

    1. shuffle函数与其他函数不一样的地方 shuffle函数没有返回值!shuffle函数没有返回值!shuffle函数没有返回值!仅仅是实现了对list元素进行随机排序的一种功能 请看下面的坑 ...

随机推荐

  1. 【机器学习】李宏毅——Adversarial Attack(对抗攻击)

    研究这个方向的动机,是因为在将神经网络模型应用于实际场景时,它仅仅拥有较高的正确率是不够的,例如在异常检测中.垃圾邮件分类等等场景,那些负类样本也会想尽办法来"欺骗"模型,使模型无 ...

  2. C/C++随堂笔记

    注释:行注释 块注释: (1)#if 0 #endif (2)/*     */ <>:表示系统文件 <stdlib.h>+syetem 调用windows中的程序 QT中 c ...

  3. CVE-2016-4437

    漏洞名称 Apache shiro 1.2.4反序列化漏洞(CVE-2016-4437) 利用条件 Apache Shiro <= 1.2.4 漏洞原理 Shiro提供了记住我(Remember ...

  4. mysql中的列类型

    创建数据表的时候,指定的列可以存储的数据类型: CREATE TABLE book ( bid  列类型); ① 数值类型--可以不加引号 TINYINT 微整型,占一个字节  范围-128~127 ...

  5. 记一下Go类型转换问题

    数值类型间可以相互转换 int<->int64,uint8<->float32,uint64<->float64 字符类型转换也可以 string<-> ...

  6. vulnhub靶场之HACKSUDO: PROXIMACENTAURI

    准备: 攻击机:虚拟机kali.本机win10. 靶机:hacksudo: ProximaCentauri,下载地址:https://download.vulnhub.com/hacksudo/hac ...

  7. java入门与进阶P-4.7

    最大公约数 首先做这个题需要先复习几组概念: 如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数.几个整数中公有的约数,叫做这几个数的公约数:其中最大的一个,叫做这几个数的最大公约数.举例: 1 ...

  8. Quartz.Net源码Example之Quartz.Examples.AspNetCore

    Quartz.Examples.AspNetCore ​ .NetCore的Web系统,后台主要执行多个触发器任务,前台展示所有触发器信息和正在执行的作业的相关信息,还可以通过访问health-UI来 ...

  9. vue3 | slots

    一.什么是插槽 插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot>  表示,父组件可以在这个占位符中填充任何模板代码,如 HTML.组件等,填充的内容 ...

  10. 12月6日内容总结——BOM、DOM、两者查找标签的方式和操作标签的方式、操作class和css的方法、事件、jQuery类库

    目录 一.BOM操作 BOM概念 window对象 window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 ...