首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TypeError:缺少1个必需的位置参数:“self”

TypeError:缺少1个必需的位置参数:“self”
EN

Stack Overflow用户
提问于 2013-07-09 03:21:42
回答 5查看 1.1M关注 0票数 318

我不能忽略这个错误:

代码语言:javascript
复制
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'

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

代码语言:javascript
复制
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会自动传递给构造函数和方法。我在这里做错了什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-09 03:23:06

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

使用

代码语言:javascript
复制
p = Pump()
p.getPumps()

小例子:

代码语言:javascript
复制
>>> class TestClass:
        def __init__(self):
            print("in init")
        def testFunc(self):
            print("in Test Func")


>>> testInstance = TestClass()
in init
>>> testInstance.testFunc()
in Test Func
票数 421
EN

Stack Overflow用户

发布于 2013-07-09 03:23:11

您需要先初始化它:

代码语言:javascript
复制
p = Pump().getPumps()
票数 81
EN

Stack Overflow用户

发布于 2019-05-18 17:50:49

比我在这里看到的任何其他解决方案都有效,也更简单:

代码语言:javascript
复制
Pump().getPumps()

如果你不需要重用一个类实例,这是很棒的。在Python 3.7.3上测试。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17534345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档