【问题标题】:super() built-in Python 2super() 内置 Python 2
【发布时间】:2018-09-04 11:15:56
【问题描述】:

我用python写了以下代码(练习),但我不知道错误在哪里:

class BClass:
    def __init__ (self, message):
        self.message=message
    def printMessage(self):
        print(self.message)

class AClass(BClass):
    def __init__(self, message):
        super(). __init__(message)

m1=AClass("ciao")
m1.printMessage()

你能帮帮我吗? 谢谢

【问题讨论】:

  • 你遇到了什么错误?
  • super(). __init__(message) 中的 . 后面有一个语法错误的空格。
  • @Synook 当我使用 python3 运行时,我没有收到任何错误。当我使用 python 2.7 运行时,我得到 TypeError: super() 需要至少 1 个参数(给定 0) - 即使在删除空格之后也是如此。
  • @Synook 我修复了代码,但它返回了这个错误:code m1=AClass("ciao") Traceback (last recent call last): File "", line 1, in 文件“”,第 3 行,在 init 类型错误:super() 至少需要 1 个参数(给定 0)code

标签: python-2.7 class super


【解决方案1】:

正如 cmets 中提到的,这个话题之前已经讨论过。我发现此链接可以解决您的问题super in python2.7 但是,这是适用于 python2.7 的特定情况的解决方案:

class BClass(object):
    message = ''
    def __init__ (self, message):
        self.message=message
    def printMessage(self):
        print(self.message)

class AClass(BClass):
    def __init__(self, message):
        super(AClass, self).__init__(message)

m1=AClass("ciao")
m1.printMessage()

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 2012-05-16
    • 2023-03-05
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 2011-09-15
    相关资源
    最近更新 更多