ホームページ >バックエンド開発 >Python チュートリアル >Python で「TypeError: Missing 1 Required Positional Argument: 'self'」エラーが発生するのはなぜですか?

Python で「TypeError: Missing 1 Required Positional Argument: 'self'」エラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-17 17:00:13354ブラウズ

Why Am I Getting the

「TypeError: Missing 1 Required Positional Argument: 'self'」エラーを理解する

Python でクラスとオブジェクトを操作する場合、次のようなエラー メッセージが表示される場合があります:

TypeError: Missing 1 required positional argument: 'self'

このエラーは次の場合に発生します。 self パラメータを指定せずにクラス メソッドを呼び出した場合。すべてのクラス メソッドは、最初の引数として self パラメーターを必要とします。

Python によるクラスの初期化方法

このエラーを理解するには、次のことを理解しておくことが重要です。クラスの場合、コンストラクター メソッド (__init__) が自動的に呼び出されます。このメソッドは、オブジェクトの属性の初期化を処理します。

クラス メソッドの呼び出し

オブジェクトが作成されたら、そのメソッドを呼び出すことができます。これらのメソッドは、オブジェクトの属性と機能にアクセスできます。ただし、すべてのクラス メソッドには、メソッドが呼び出されるクラスのインスタンスを参照する self パラメータが必要であることに注意してください。

エラーのトラブルシューティング

コード例:

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

    def getPumps(self):
        pass

p = Pump.getPumps()  # Error here
print(p)

self 引数を指定せずに getPumps() を呼び出すと、エラーが発生します。これを修正するには、まず Pump クラスのインスタンスを作成し、次にそのインスタンスで getPumps() メソッドを呼び出す必要があります。

p = Pump()
p.getPumps()

これで、インスタンスの作成時に __init__ コンストラクターが呼び出されます。 getPumps() メソッドは self パラメータにアクセスできるようになり、クラスの特定のインスタンスを操作できるようになります。

以上がPython で「TypeError: Missing 1 Required Positional Argument: 'self'」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。