类型错误:缺少 1 个必需的位置参数:'self'

新手上路,请多包涵

我无法克服错误:

 Traceback (most recent call last):
  File "C:\Users\Dom\Desktop\test\test.py", line 7, in <module>
    p = Pump.getPumps()
TypeError: getPumps() missing 1 required positional argument: 'self'

我检查了几个教程,但似乎与我的代码没有什么不同。我唯一能想到的是 Python 3.3 需要不同的语法。

 class Pump:

    def __init__(self):
        print("init") # never prints

    def getPumps(self):
        # Open database connection
        # some stuff here that never gets executed because of error
        pass  # dummy code

p = Pump.getPumps()

print(p)

如果我理解正确, self 自动传递给构造函数和方法。我在这里做错了什么?

原文由 DominicM 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 438
2 个回答

您需要在这里实例化一个类实例。

采用

p = Pump()
p.getPumps()

小例子 -

 >>> class TestClass:
        def __init__(self):
            print("in init")
        def testFunc(self):
            print("in Test Func")

>>> testInstance = TestClass()
in init
>>> testInstance.testFunc()
in Test Func

原文由 Sukrit Kalra 发布,翻译遵循 CC BY-SA 4.0 许可协议

你需要先初始化它:

 p = Pump().getPumps()

原文由 JBernardo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题