[英]Python is there a difference calling a method from super, or from the class
[英]Is there a purpose in calling super() from a basic python class?
我在这里有一个奇怪的问题。 假设我要制作一个简单的基本类,如下所示:
class MyClass(object):
def __init__(self):
super(MyClass, self).__init__()
调用super()
有什么目的吗? 我的班级只有默认的object
父班级。 之所以这样问,是因为当我创建一个新类时,我的IDE会自动为我提供此代码段。 我通常删除super()
函数,因为我看不到它有任何用途。 但是也许我想念什么?
您没有义务调用object.__init__
(通过super
或其他方式)。 它什么也没做。
但是,以这种方式在__init__
函数(或任何调用超类的函数)中编写该代码段的目的是给您一些灵活性,使他们无需修改该代码即可更改超类。
因此,它不会给你太多,但它确实买你的超能力改变MyClass
一个不同的类,它的__init__
同样接受无参数,但也许不会做一些事情,确实需要由子类调用__init__
功能。 全部都无需修改MyClass.__init__
。
您的电话是否值得拥有。
同样在此特定示例中,您可以完全省略MyClass.__init__
,因为您的也不执行任何操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.