在 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.
上完全没有错误
我正尝试在 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.