在 Python2.7 中使用 'super' 的示例

Example using 'super' In Python2.7

我正尝试在 python 中使用 super 扩展我的 class 初始化。在下面的示例中,我希望 Class A 初始化一个乘以 4 的参数,并且我希望该参数通过继承在 class B 中可用。然后我希望 B 中的另一个初始化采用相同的参数并将其乘以 8。第二次初始化不必在 A 中可用。

class A():
    def __init__(self,parameter):
        self.initialize_parameter=4*parameter

class B(A):
    def __init__(self,parameter): #note this parameter is intended to be the same parameter from Class A
        self.another_parameter=parameter*8
        super(B,self).__init__(parameter)

我一直在阅读的文档似乎表明以上是正确的语法(我认为),但是关于这个主题的文档相当混乱。上面的代码 returns TypeError: must be type, not classobj.

这是我第一次使用继承,有人能指出我做错了什么吗?

正确的语法是 class A(object),而不是 Class A()

请注意,我将关键字 class 都小写了(这使我相信您此处的代码不是复制粘贴的 - 就您编写的代码寻求帮助是个坏主意没有尝试 运行!),并且还在括号内添加了单词 object 以将其标记为新类型 Python class。后者是惯用的,如果不是绝对必要的话。

当我尝试 运行 您编写的代码时,我得到了 SyntaxError: invalid syntax。当我将单词 class 小写时,我在 Python 2.7.

上完全没有错误