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

时间:2015-09-06 12:22:04

标签: python inheritance super

我正在尝试使用super在python中扩展我的类初始化。在下面的例子中,我希望candlesticks初始化一个参数乘以4,我希望这个参数可以通过继承在B类中使用。然后我想在B中进行另一次初始化以获取相同的参数并将其乘以8。第二次初始化不必在A中可用。

Class 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)

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

1 个答案:

答案 0 :(得分:5)

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

请注意,我已经低估了关键字class(这让我相信你的代码在这里没有被复制粘贴 - 在你没有的代码上寻求帮助是个坏主意试图运行!),并在parens中添加单词object以将其标记为新类型的Python类。如果不是严格必要的话,后者是惯用的。

当我尝试完全按照您编写的代码运行代码时,我得到SyntaxError: invalid syntax。当我对单词class进行小写时,我在Python 2.7上完全没有错误。