TypeError:缺少一个必需的位置参数:‘Self’

TypeError:缺少一个必需的位置参数:‘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'

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

主枕:

# test scriptfrom lib.pump import Pumpprint ("THIS IS A TEST OF PYTHON") # this printsp = Pump.getPumps()print (p)

泵级:

import pymysqlclass 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


拉风的咖菲猫
浏览 1982回答 3
3回答

慕沐林林

您需要在这里实例化一个类实例。使用p&nbsp;=&nbsp;Pump()p.getPumps()很小的例子->>>&nbsp;class&nbsp;TestClass: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;__init__(self): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("in&nbsp;init") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;testFunc(self): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("in&nbsp;Test&nbsp;Func")>>>&nbsp;testInstance&nbsp;=&nbsp;TestClass()in&nbsp;init>>>&nbsp;testInstance.testFunc()in&nbsp;Test&nbsp;Func

茅侃侃

您需要首先初始化它:p&nbsp;=&nbsp;Pump().getPumps()

Cats萌萌

这个“自我”关键字在python中类似于“这个”关键字在c+/java/c#中。在python 2中,它是由编译器隐式完成的。(yes python does compilation internally)..只是在python 3中你需要提一下explicitly在构造函数和成员函数中。例子:&nbsp;class&nbsp;Pump(): &nbsp;//member&nbsp;variable &nbsp;account_holder &nbsp;balance_amount&nbsp;&nbsp;&nbsp;//&nbsp;constructor&nbsp;&nbsp;&nbsp;def&nbsp;__init__(self,ah,bal): &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;self.account_holder&nbsp;=&nbsp;ah&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;self.balance_amount&nbsp;=&nbsp;bal&nbsp;&nbsp;&nbsp;def&nbsp;getPumps(self): &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;print("The&nbsp;details&nbsp;of&nbsp;your&nbsp;account&nbsp;are:"+self.account_number&nbsp;+&nbsp;self.balance_amount) &nbsp;//object&nbsp;=&nbsp;class(*passing&nbsp;values&nbsp;to&nbsp;constructor*) &nbsp;p&nbsp;=&nbsp;Pump("Tahir",12000) &nbsp;p.getPumps()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python