gpt4 book ai didi

python - 这些子类定义有何不同?

转载 作者:行者123 更新时间:2023-12-01 03:08:56 24 4
gpt4 key购买 nike

有人可以解释一下从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 类似,因为 SomeClassas_dict 中没有做任何不同的事情。它照常继承BaseClass的方法。

SomeOtherClass 只是 BaseClass另一个名称,您不会在那里创建子类关系,只是附加另一个名称,您可以通过该名称引用该类。

关于python - 这些子类定义有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com