2016 - 2024

感恩一路有你

Python中super()函数如何使用

浏览量:2117 时间:2024-02-04 08:27:54 作者:采采

在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()函数调用父类的方法的过程。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。