gpt4 book ai didi

python - 子类 - 来自父类(super class)的参数

转载 作者:IT老高 更新时间:2023-10-28 20:34:20 25 4
gpt4 key购买 nike

我对如何在 Python 中的子类和父类(super class)之间传递参数感到有些困惑。考虑以下类结构:

class Superclass(object):
def __init__(self, arg1, arg2, arg3):
#Inilitize some variables
#Call some methods

class Subclass(Superclass):
def __init__(self):
super(Subclass, self).__init__()
#Call a subclass only method

我遇到的麻烦是理解父类(super class)和子类之间如何传递参数。是否有必要在子类初始化程序中重新列出所有父类(super class)参数?在哪里指定新的、仅限子类的参数?当我尝试使用上面的代码实例化一个子类时,它只需要 1 个参数,而不是我列出的原始 4(包括 self)。

TypeError: __init__() takes exactly 1 argument (4 given)

最佳答案

没有魔法发生! __init__方法和其他方法一样有效。您需要在子类初始化程序中显式获取所需的所有参数,并将它们传递给父类(super class)。

class Superclass(object):
def __init__(self, arg1, arg2, arg3):
#Initialise some variables
#Call some methods

class Subclass(Superclass):
def __init__(self, subclass_arg1, *args, **kwargs):
super(Subclass, self).__init__(*args, **kwargs)
#Call a subclass only method

当您调用 Subclass(arg1, arg2, arg3) 时Python 只会调用 Subclass.__init__(<the instance>, arg1, arg2, arg3) .它不会神奇地尝试将一些参数匹配到父类(super class)和一些子类。

关于python - 子类 - 来自父类(super class)的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840197/

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