python 子类继承父类__init__(转载)
转载:
http://www.jb51.net/article/100195.htm
前言
使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。
注意:这个名称的开始和结尾都是双下划线。
父类A
|
1
2
3
4
5
6
|
class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + self.name |
子类不重写__init__ , 实例化子类时,会自动调用父类定义的__init__
|
1
2
3
4
5
6
7
|
class B(A): def getName(self): return 'B '+self.name if __name__=='__main__': b=B('hello') print b.getName() |
执行
|
1
2
3
|
$python lei2.py name: helloB hello |
但重写了__init__时,实例化子类,就不会调用父类已经定义的__init__
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + self.nameclass B(A): def __init__(self, name): print "hi" self.name = name def getName(self): return 'B '+self.nameif __name__=='__main__': b=B('hello') print b.getName() |
执行
|
1
2
3
|
$python lei2.py hiB hello |
为了能使用或扩展父类的行为,最好显示调用父类的__init__方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + self.nameclass B(A): def __init__(self, name): super(B, self).__init__(name) print "hi" self.name = name def getName(self): return 'B '+self.nameif __name__=='__main__': b=B('hello') print b.getName() |
执行
|
1
2
3
4
|
$python lei2.pyname: hellohiB hello |
总结
以上就是关于python子类继承父类的__init__方法的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
python 子类继承父类__init__(转载)的更多相关文章
- python 子类继承父类的__init__方法
父类A class A(object): def __init__(self, name): self.name=name print "name:", self.name def ...
- python 子类继承父类属性及实例化方法
- python之子类继承父类时进行初始化的一些问题
直接看代码: class Person: def __init__(self): self.name = "jack" class Student(Person): def __i ...
- python - class类 (五) 继承补充-子类继承父类属性/函数方法
子类继承父类属性/函数方法: #方式一:(原生方式,不建议使用) class Dongwu(object): def __init__(self,name,sex,old): self.name = ...
- python子类调用父类的方法
python子类调用父类的方法 python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法.如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问, ...
- @Inherited:允许子类继承父类的注解。
在看定义注解的相关文章的时候,看到这个@Inherited注解,简单的说明并没有真正搞懂是什么意思.在网上搜索了一些相关的内容,现在把一篇文章转载过来.以便后面使用. 文章出处,转载地址:(http: ...
- C#中通过类来继承两个接口,父类实例化接口中的方法,子类继承父类,调用方法
实现了父类继承接口,父类实例化接口的方法,子类继承父类,子类调用父类的方法直接使用 代码如下: using System; using System.Collections.Generic; usin ...
- java中子类继承父类程序执行顺序
java中子类继承父类程序执行顺序 FatherTest.java public class FatherTest { private String name; public FatherTest() ...
- Python子类调用父类内属性的方法
常见的就是初始化方法__init__() python中类的初始化方法是__init__(),因此父类子类的初始化方法都是这个,如果子类不实现这个函数,初始化时调用父类的初始化函数,如果子类实现这个函 ...
随机推荐
- pycharm中能运行,但是往往py都要放到服务器上去跑,问题来了
py文件在linux上运行,导包错误: 在py文件中添加项目的根目录: import sys sys.path.append('项目路径') sys.path.append(os.path.dirna ...
- 【leetcode】41. First Missing Positive
题目如下: 解题思路:这题看起来和[leetcode]448. Find All Numbers Disappeared in an Array很相似,但是有几点不同:一是本题的输入存在负数,二是没有 ...
- vue服务器端渲染指南研究
什么是服务器端渲染(SSR)? Vue.js 是构建客户端应用程序的框架.默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM.然而,也可以将同一个组件渲染为服务器端的 HT ...
- 吸$DN
旧博客:https://blog.csdn.net/gmh77 从几年前开始用CSDN,见证了CSDN是如何一步步走向辣鸡的 广告?ABP 登录看文章?雨我无瓜账号常年不退 分类要慢慢点也可以接受 前 ...
- P2627 修剪草坪 (单调队列优化$dp$)
题目链接 Solution 70分很简单的DP,复杂度 O(NK). 方程如下: \[f[i][1]=max(f[j][0]+sum[i]-sum[j])\]\[f[i][0]=max(f[i-1][ ...
- Xcode之增加环境变量(多种环境区分)
序言: Xcode默认有DEBUG何RELEASE模式,如果我们在项目中想增加预发布环境或者再增加多个环境呢?如果在项目中用if else 弄个全局变量来控制,每次打包之前去手动修改,这样不仅繁琐,而 ...
- Solr添加文档(XML)
在上一章中,我们学习解释了如何向Solr中添加JSON和.CSV文件格式的数据.在本章中,将演示如何使用XML文档格式在Apache Solr索引中添加数据. 示例数据 假设我们需要使用XML文件格式 ...
- NOIp 数学知识点总结
推荐阅读 NOIp 基础数论知识点总结: https://www.cnblogs.com/greyqz/p/number.html 排列组合 常用公式 排列:\[\displaystyle A_n^m ...
- AtCoder Regular Contest 071 D - 井井井 / ###
题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...
- linux中awk 详解
一.awk简介 awk是一个非常好用的数据处理工具,相对于sed常常作用于一整个行的处理,awk则比较倾向于一行当中分成数个[字段]处理,因此,awk相当适合处理小型的数据数据处理.awk是一种报表生 ...