Python 如何调用父类的构造函数
2017-06-18 19:05
441 查看
子类(派生类)并不会自动调用父类(基类)的init方法,例如:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
print self.val
if name == ‘main‘:
foo2 = Foo2()
运行时报错。
调用父类的init方法有两种,第一种:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
Foo.init(self) //类调用实例方法时,需要传入self指代的实例
print self.val
if name == ‘main‘:
foo2 = Foo2()
第二种:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
super(Foo2, self).init()
print self.val
if name == ‘main‘:
foo2 = Foo2()
这两种方法的运行结果均为:
1
不过这两种方法是有区别的。
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
print self.val
if name == ‘main‘:
foo2 = Foo2()
运行时报错。
调用父类的init方法有两种,第一种:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
Foo.init(self) //类调用实例方法时,需要传入self指代的实例
print self.val
if name == ‘main‘:
foo2 = Foo2()
第二种:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
super(Foo2, self).init()
print self.val
if name == ‘main‘:
foo2 = Foo2()
这两种方法的运行结果均为:
1
不过这两种方法是有区别的。
相关文章推荐
- Python 子类调用父类的构造函数
- 在C#的构造函数中,如何显式的先调用父类或者是自己的构造函数?
- C# 构造函数如何调用父类构造函数或其他构造函数
- [zz]如何在Python中调用父类的同名方法
- 如何调用父类的构造函数?
- python子类如何才能调用父类的方法?
- QT学习笔记——如何调用父类的构造函数
- 如何调用父类 有参构造函数
- 如何调用父类的构造函数
- python3 继承 在子类中如何调用父类中的方法
- [zz]如何在Python中调用父类的同名方法
- C++子类如何调用父类构造函数
- python子类如何调用父类的__init__方法
- 如何在Python中调用父类的同名方法
- 如何在Python中调用父类的同名方法
- 构造函数内如何调用虚函数
- 所有的页面都继承自定义的BasePage,而有一个特殊页面要继承BasePage,但不想执行父类构造函数调用的某些方法,怎么办?
- 如何发布vc调用Python的独立运行的程序
- linux 下python 调用C++ .so如何debug c++代码
- 父类的构造函数中最好不要调用虚函数