super函数的用法
1.创建一个类.
# .创建一个类
class Bird:
def __init__(self):
self.hungry =True def eat(self):
if self.hungry:
print("Ahhhhh")
self.hungry=False
else:
print("No Thanks.") #实例化.
b= Bird() #调用方法.打印的结果为:Ahhhhh
b.eat() #再一次调用eat方法.打印结果:No Thanks.
b.eat()
2. 创建一个子类.
#. 创建一个子类.
class SongBird(Bird):
def __init__(self):
self.sound ="Squawk!" def sing(self):
print(self.sound) #实例化
sb =SongBird() #调用方法,打印结果为:Squawk!
sb.sing() #调用eat方法,报错.
sb.eat() #为什么报错, SongBird 没有属性Hungry ,SongBird重写了构造函数,但是新的构造函数没有任何初始化属性hungry.
# 解决办法1.调用未关联的超类构造函数
# . 使用super方法.
3.子类的解决办法
#. 子类的解决办法:
class SongBird(Bird):
def __init__(self):
# Bird.__init__(self) #1. 调用超类构造函数.
super().__init__() #2. 通过super方法调用.
self.sound= "squawk!" def sing(self):
print(self.sound) sb =SongBird()
sb.sing() #squawk!
sb.eat() #Ahhhhh
sb.eat() #No Thanks.
super函数的用法的更多相关文章
- Python中super函数的用法
之前看python文档的时候发现许多单继承类也用了super()来申明父类,那么这样做有何意义? 从python官网文档对于super的介绍来看,其作用为返回一个代理对象作为代表调用父类或亲类方法.( ...
- super()函数的用法
http://www.runoob.com/python/python-func-super.html class FooParent(object): def __init__(self): sel ...
- Python中的super函数,你熟吗?
摘要:经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么? 本文分享自华为云社区<Python中的super函数怎么学,怎么解 ...
- python基础----多态与多态性、super函数用法、继承原理
一.多态与多态性 ㈠多态: 多态指的是一类事物有多种形态, ...
- 面向对象编程之super内置函数的用法
先来看一段代码: 定义一个名叫People的父类,又定义了一个叫Teacher的老师类和一个叫Student的学生类 来继承People的类,并根据这两个子类实例化出两个对象s1和t1. class ...
- 由Python的super()函数想到的
python-super *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !im ...
- python super()函数详解
引言: 在类的多继承使用场景中,重写父类的方法时,可能会考虑到需要重新调用父类的方法,所以super()函数就是比较使用也很必要的解决方法: 文章来源: http://www.cnblogs.com/ ...
- Python面试题之Super函数
这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简单说, super函数是调用下一个父类(超类)并返回该父类实例的方法. 这里的下一 ...
- java中super和this用法总结
一.this用法 概念:this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的指针. this的用法在java中大致可以分为三种: 1. 普通对象的直接引用:this相当于指向当前对象本身 ...
随机推荐
- 接触mybatis使用
1.mybatis mybatis是一个自定义sql.存储过程和高级映射的持久层框架,是Apache下的顶级项目. mybatis可以让程序员将主要精力放在sql上,通过mybatis提供的映射方式. ...
- Tornado异步阻塞解决方案
在 tornado 中异步无阻塞的执行耗时任务 在 linux 上 tornado 是基于 epoll 的事件驱动框架,在网络事件上是无阻塞的.但是因为 tornado 自身是单线程的,所以如果我们在 ...
- mysql rc模式时binlog_format=row的解释【转】
总体来说:在 tx_isolation= READ-COMMITTED .binlog_format =statement 的情况下,mysql 没有gap 锁,这样binlog 记录的数据修改的顺序 ...
- ObjC.instancetype
1. instancetype http://nshipster.com/instancetype/ 2. Objc的扩展 http://clang.llvm.org/docs/LanguageExt ...
- 利用ks构建ISO中的一些坑
构建ISO的基本流程 1.获取rpm包源码 2.将源码增量编译成二进制包 3.编写ks的包列表决定ISO制作时需要从什么地方(二进制仓库repo)取哪些二进制包 4.通过createiso命令并指定k ...
- RNA-seq连特异性
RNA-seq连特异性 Oct 15, 2015 The strandness of RNA-seq analysis 前段时间一直在研究关于illumina TrueSeq stranded RNA ...
- Laravel 本地化定义
1.配置本地化语言Laravel 的本地化语言配置项位于config/app.php: [php] view plain copy 'locale' => 'zh',//当前语言 'fallba ...
- web札记
url中不能是#号,struts不读取#之后的字符串.
- spring mvc MultipartFile 上传文件 当文件较小时(10k) ,无法上传成功 。
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipartResolver" cla ...
- jQuery DataTables插件分页允许输入页码跳转
背景说明 项目中使用jQuery DataTables插件来实现分页表格,但是默认的分页样式不能输入页码进行跳转,在页数非常多的时候使用很不方便,最主要的还是没有达到产品部门的设计要求,所以我需要寻找 ...