python 继承并定制父类的初始化方法,python 继承类的初始化用法
Python 中,子类B继承父类A时候会用class B(A):的代码形式声明B。
class A:
def __init__(self, x=1, y=2):
self.x = x
self.y = y
print("In class A's init...")
def Aprint(self):
print("AAAAAAAAAAAAA")
在子类B的初始化方法默认会覆盖掉父类A的初始化方法,举例:
class B(A):
def __init__(self, z):
self.z = z
print("In class B's init...")
def Bprint(self):
print("BBBBBBBBBBBBB")
demo = B(3)
print(demo.z)
print(demo.x)
demo.Aprint()
demo.Bprint()
报错显示B中找不到成员x(肯定也找不到y成员):
注释掉demo.x这行就没问题:
说明子类只是重写了父类的__init__方法,其他方法(Aprint)得以继承。
现在在B的__init__方法中加入一行代码:super().__init__(x, y)或者super(B, self).__init__(x, y),并且接受新的变量x、y:
class B(A):
def __init__(self, z, x, y):
# super(B, self).__init__(x, y)
super().__init__(x, y)
self.z = z
print("In class B's init...")
def Bprint(self):
print("BBBBBBBBBBBBB")
现在调用全体的变量和方法试试看:
demo = B(3,4,10)
print(demo.z)
print(demo.x)
print(demo.y)
demo.Aprint()
demo.Bprint()
这说明子类B中初始化方法中添加一行super().__init__(x, y)代码会调用父类A中的初始化方法,而不会直接的覆盖父类初始化方法,同时注意传参。
进一步地,子类中任意位置添加super().func(*args)都会调用父类中的func()函数。
需要声明的一点是,python2中,必须使用super(B, self).func(*args)才能调用父类A中的func()函数;此外父类A也要继承自object:class A(object):,这在python3中是可以省略的。
修改后:
标签:__,初始化,python,demo,self,用法,init,print,父类
来源: https://www.cnblogs.com/Higgerw/p/14124198.html
python 继承并定制父类的初始化方法,python 继承类的初始化用法相关推荐
- 【面向对象编程】(4) 类的继承,重构父类中的方法
各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...
- C++中了类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...
- 在C++中子类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...
- 子类不能继承或覆盖父类的private方法
题目:如果现在父类的一个方法定义成private访问权限,在子类中将此方法声明为default访问权限,那么这样还叫重写吗? 答:不是.因为private关键字的定义是"除了包含该成员的类之 ...
- 初始化方法-创建对象时自动调用初始化方法
class Cat:def __init__(self):print("这是一个初始化方法")# self.属性名 = 属性的初始值self.name = "Tom&qu ...
- c++初始化成员列表_C++ 类构造函数初始化列表
关注我们更多精彩等你发现! 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: 上面的例子中两个构造函数的结果是一样的.上面的构造函数 ...
- python排序sorted_sorted排序的两个方法 - Python
在给列表排序时,sorted非常好用,语法如下: sorted(iterable[, cmp[,key[,reverse]]]) 简单列表排序,很容易完成,sorted(list)返回的对象就是列表结 ...
- python内置函数format的使用方法 python format函数怎么用
1.基本语法 format 函数可以接受不限个参数,位置可以不按顺序. 如:"{1} {0} {1}".format("hello", "world& ...
- python 中类的初始化方法
在 Python 的类中,有一种特殊的方法--初始化方法.它的格式是 def __init__(self):,方法名由 init(initialize 的缩写,初始化的意思)加左右两边的 双下划线 组 ...
最新文章
- 【TensorFlow】理解tf.nn.conv2d方法 ( 附代码详解注释 )
- MyEclipse优化---编程时更流畅
- 【博客话题】感谢您,我的老师
- python编写一个程序、实现文件的复制_写个python 脚本实现文件的递归拷贝
- MongoDB与Spring Data项目
- Html5 各属性详解
- 谈华为鸿蒙内核和操作系统,谈华为鸿蒙内核和操作系统
- 因为这几个TypeScript代码的坏习惯,同事被罚了500块
- NetBeans Weeldy News 刊号 # 53 - Apr 23, 2009
- 555 定时器的 3 种用法判断和解释
- php文字转语音amr,Android插件,TTS语音合成(文字转化语音)。
- 网站被攻击客户信息被泄露如何解决
- !!. 与 ?. 的区别
- Win10 1809美化
- 关于取整符号(二叉树具有n个结点的m次树的最小高度⌈logₘ(n(m-1)+1)⌉)
- 《缠中说禅108课》22:将 8 亿的大米装到 5 个庄家的肚里
- 关于标题党、八卦的最优解!!!
- 数据库 和html的交互
- HTML5+CSS3+ES5/6+TS+WebAPI前端入门/实习题库笔记
- 定向推送,虚假宣传,资本助力的团油有谁撑腰?
热门文章
- Extjs中控件分隔符
- 300多名中国人在菲律宾非法就业出事了?
- 什么是web标准、可用性、可访问性
- 工程流体力学笔记暂记25 (管内流动的流态与损失-雷诺数)
- ubuntu18.04 + CUDA10 + CUDNN7 deb安装
- P2P之UDP穿透NAT的原理与实现(附源代码)(转)
- [zz] 腾讯云 AV1落地
- php为什么不是三剑客,PHP 开源 CMS 三剑客论剑 SXSW 展会
- python seo百度_为SEO学习Python课程(python与seo百度云免费)
- [内核内存] [arm64] 内存规整1---memory-compaction详解