「TypeError: 必要な位置引数 'self' が 1 つありません」というエラーが表示されるのはなぜですか? 質問する

「TypeError: 必要な位置引数 'self' が 1 つありません」というエラーが表示されるのはなぜですか? 質問する

次のようなコードがあります:

class Pump:    
    def __init__(self):
        print("init")

    def getPumps(self):
        pass

p = Pump.getPumps()
print(p)

しかし、次のようなエラーが発生します:

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'

なぜ__init__呼び出されないのでしょうか。また、この例外はどういう意味ですか。私の理解では、selfコンストラクターとメソッドに自動的に渡されるということです。ここで何が間違っているのでしょうか。

ベストアンサー1

クラスを使用するには、まず次のようにインスタンスを作成します。

p = Pump()
p.getPumps()

完全な例:

>>> class TestClass:
...     def __init__(self):
...         print("init")
...     def testFunc(self):
...         print("Test Func")
... 
>>> testInstance = TestClass()
init
>>> testInstance.testFunc()
Test Func

おすすめ記事