有人可以解释一下从BaseClass
派生的以下类定义之间有什么区别,以及在什么情况下它们的定义方式很重要:
class BaseClass(object):
def __init__(self):
# ...
def as_dict(self):
# ...
class SomeClass(BaseClass):
def as_dict(self):
# Does this somehow change the method compared to 'AnotherClass.as_dict()' below
return super(SomeClass, self).as_dict()
class AnotherClass(BaseClass): pass
SomeOtherClass = BaseClass
最佳答案
由于您向 SomeClass
添加了一个 as_dict
方法,其中包含单个 super
调用,因此没有区别该类的最终行为。总体而言,您添加了一些不必要的函数调用,这一事实有所不同。
AnotherClass
的行为与 SomeClass
类似,因为 SomeClass
在 as_dict
中没有做任何不同的事情。它照常继承BaseClass
的方法。
SomeOtherClass
只是 BaseClass
的另一个名称,您不会在那里创建子类关系,只是附加另一个名称,您可以通过该名称引用该类。
关于python - 这些子类定义有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090374/