博客
关于我
python中的super函数
阅读量:588 次
发布时间:2019-03-11

本文共 756 字,大约阅读时间需要 2 分钟。

Python中的super函数是一个强大的工具,用于在继承类时调用父类的方法或属性。虽然它在编程中并不常用,但理解它的使用方式对于任何一个Python开发者都是非常有必要的。

super()函数的主要作用是为了在子类中访问父类的特定方法或属性。当子类覆盖了父类某些方法时,super()可以帮助开发者明确地调用父类的原始方法,而不是通过子类的方法来实现。此外,super()还可以在类继承链的深度中调(ceive父类以外的多个ancestor类的方法。

在实际使用中,super()的正确使用尤为重要。例如,在Python中,当我们定义一个子类并重写了一个方法时,通常可以通过super().method()来调用父类的方法。这样可以确保代码的可维护性和可扩展性。

让我们通过一个简单的示例来理解super()的功能:

class A:    def add(self, x):        y = x + 1        print(y)

class B(A)继承了class A,并重写了add方法:

class B(A):    def add(self, x):        super().add(x)

当我们创建一个B对象并调用add方法时:

b = B()b.add(2)

结果会是:

3

在这个示例中,super().add(x)确实调用了父类A的add方法,从而正确地计算了x+1的值。

通过这个简单的例子我们可以看出,super()函数在类继承中起到了直接调用父类方法的作用。这对于复杂的继承关系和多层继承allisance hierarchy特别有用。

总的来说,super()函数是一个非常强大的工具,尽管它的使用场景相对较少,但掌握它对于写出高效且可靠的Python代码至关重要。

转载地址:http://kdctz.baihongyu.com/

你可能感兴趣的文章
No module named 'crispy_forms'等使用pycharm开发
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
查看>>
No new migrations found. Your system is up-to-date.
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>
No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
查看>>
No resource identifier found for attribute 'srcCompat' in package的解决办法
查看>>
no session found for current thread
查看>>
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
查看>>
NO.23 ZenTaoPHP目录结构
查看>>
no1
查看>>
NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
查看>>
NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
查看>>
NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
查看>>
node exporter完整版
查看>>
Node JS: < 一> 初识Node JS
查看>>
Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
查看>>
Node 裁切图片的方法
查看>>
Node+Express连接mysql实现增删改查
查看>>