Python中super()函数如何使用
在Python中,我们经常会遇到子类需要调用父类的方法的情况。这时候就可以使用super()函数来实现。super()函数是用于在子类中调用父类的一个方法。
Python 3.x版本的实现
在Python 3.x版本中,使用super()函数的语法是:super().parent_method()。其中,parent_method是父类中的方法名。
例如,在以下示例中,我们定义了两个类A和B。类A有一个show()方法,而类B继承了类A,并且增加了一个show1()方法。在show1()方法中,我们使用super().show()来调用父类A中的show()方法。
```python
class A(object):
def show(self,x):
print('A class: {}' .format(x))
class B(A):
def show1(self,x):
super().show(x)
print('B class: {}' .format(x))
b B()
(1)
```
运行结果为:
```
A class: 2
B class: 1
```
Python 2.x版本的实现
在Python 2.x版本中,使用super()函数的语法稍有不同:super(子类名, self).parent_method()。其中,子类名是子类自身的类名。
以下示例展示了在Python 2.x版本中使用super()函数的方法:
```python
class A(object):
def show(self,x):
print('A class: {}' .format(x))
class B(A):
def show1(self,x):
super(B, self).show(x)
print('B class: {}' .format(x))
b B()
(1)
```
运行结果为:
```
A class: 2
B class: 1
```
实例
最后,让我们看一个更具体的示例来说明super()函数的用法。
```python
class FooParent(object):
def __init__(self):
'I'm the parent.'
print ('Parent')
def bar(self,message):
print ("%s from Parent" % message)
class FooChild(FooParent):
def __init__(self):
# 首先找到FooChild的父类(就是类FooParent),然后把类FooChild的对象转换为类FooParent的对象
super(FooChild,self).__init__()
print('Child')
def bar(self,message):
super(FooChild, self).bar(message)
print ('Child bar fuction')
print ()
if __name__ '__main__':
fooChild FooChild()
('HelloWorld')
```
运行结果为:
```
Parent
Child
HelloWorld from Parent
Child bar fuction
I'm the parent.
```
通过这个示例,我们可以清楚地看到在子类中使用super()函数调用父类的方法的过程。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。