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__(),因此父类子类的初始化方法都是这个,如果子类不实现这个函数,初始化时调用父类的初始化函数,如果子类实现这个函 ...
随机推荐
- [python 学习] sax
#!/usr/bin/python # -*- coding: UTF-8 -*- import xml.sax class MovieHandler( xml.sax.ContentHandler ...
- jmeter性能工具 使用手册(一)
前置条件: 在jmeter官网下载jmter 安装包 电脑有java 环境 使用步骤: 打开jmeter 2.新建线程 Test plan--->add-->theads(users)-- ...
- Task5.NB_SVM_LDA
参考:https://blog.csdn.net/u013710265/article/details/72780520 贝叶斯公式就一行: P(Y|X)=P(X|Y)P(Y)P(X) 而它其实是由以 ...
- [luogu]P1169 [ZJOI2007]棋盘制作[DP][单调栈]
[luogu]P1169 [ZJOI]棋盘制作 ——!x^n+y^n=z^n 题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋 ...
- 【CF1257C】Dominated Subarray【贪心】
题意:给定一个数组,求最小的字数组使得数组里存在至少一对重复元素 题解:每个点求出他的后继在哪,然后每次贪心就这个点到他的后继为一个子数组,求出最小的就是答案 #include<iostream ...
- WPF 设置窗体大小为显示器工作区域大小
最近做的项目遇到一个问题,窗体在1680*1050分辨率下显示,系统字体设置为小字体时,显示没问题,但是调到中等字体时,窗体显示位置出了问题.主窗体为无边框窗体,拖动及放大缩小事件都是自己写的. ...
- HelloServlet类继承HttpServlet利用HttpServletResponse对象
HelloServlet类继承HttpServlet利用HttpServletResponse对象 HelloServlet类的doGet()方法先得到username请求参数,对其进行中文字符编码转 ...
- [CSP-S模拟测试]:轰炸行动(bomb)(塔尖+拓扑排序+语文)
题目描述 战狂也在玩<魔方王国>.他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸.小奇有n座城市,城市之间建立了$m$条有向的地下通道.战狂会发起若干轮轰炸,每轮可以轰炸任意多个城 ...
- xsxsxsxsxsxsxsxs
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- 黑马lavarel教程---2、获取用户输入
黑马lavarel教程---2.获取用户输入 一.总结 一句话总结: lavarel中获取用户输入可以通过Input外观模式和Request外观模式,两者的对应的方法啥的都一样,比如get.all.o ...