我正在尝试使用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)
。
这是我第一次使用继承,有人能说出我做错了什么吗?
答案 0 :(得分:5)
正确的语法是class A(object)
,而不是Class A()
。
请注意,我已经低估了关键字class
(这让我相信你的代码在这里没有被复制粘贴 - 在你没有的代码上寻求帮助是个坏主意试图运行!),并在parens中添加单词object
以将其标记为新类型的Python类。如果不是严格必要的话,后者是惯用的。
当我尝试完全按照您编写的代码运行代码时,我得到SyntaxError: invalid syntax
。当我对单词class
进行小写时,我在Python 2.7上完全没有错误。