强人锁男 发表于 2018-9-19 16:08:19

TypeError: getPumps() missing 1 required positional argument: 'self'

我是python新手,遇到下面的错误:
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需要不同的语法。
主要内容:
# test script

from lib.pump import Pump

print ("THIS IS A TEST OF PYTHON") # this prints

p = Pump.getPumps()

print (p)
Pump类:
import pymysql

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
如果我理解正确,“self”会自动传递给构造函数和方法。我在这做错了什么?
我使用的是Windows 8和python 3.3.2

此间少年 发表于 2018-9-19 16:10:00

你需要在此实例化一个类实例。
使用
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

蛋蛋超人 发表于 2018-9-19 16:10:49

你需要先将其初始化:
p = Pump().getPumps()

污妖王 发表于 2018-9-19 16:12:18

你也可以通过注释方法@staticmethod来删除此错误。

opencv键盘侠 发表于 2018-9-20 15:01:06

哇,我也是差不多的问题,谢谢
页: [1]
查看完整版本: TypeError: getPumps() missing 1 required positional argument: 'self'