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

私の Python コードで「TypeError: Missing 1 Required Positional Argument: 'self'」がスローされるのはなぜですか?

DDD
リリース: 2024-12-14 19:59:14
オリジナル
415 人が閲覧しました

Why Does My Python Code Throw a

TypeError: Missing 1 Required Positional Argument: 'self' が発生する理由

Python では、クラスを操作するときに例外が発生する可能性があります。クラスメソッドの呼び出し中。特定のエラー メッセージ「TypeError: Missing 1 required location argument: 'self'」は、メソッドを呼び出す前にクラスのインスタンスを作成するためのコンストラクター メソッドが適切に呼び出されなかったことを示します。

目的の理解of 'self'

'self' は、すべてのクラス メソッド (コンストラクター)。これはクラスのインスタンスを表し、その属性とメソッドへのアクセスを提供します。

コンストラクター呼び出し

クラス インスタンスを初期化するには、コンストラクター (__init__) メソッドを呼び出す必要があります。 。これを呼び出すには、ClassName() 構文を使用してオブジェクトを作成し、クラスをインスタンス化する必要があります。これにより、self 引数がインスタンスに割り当てられ、その属性と動作が初期化されます。

Clarity の例

次のコード スニペットを考えてみましょう:

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

    def getPumps(self):
        pass

p = Pump.getPumps()  # Error: TypeError: getPumps() missing 1 required positional argument: 'self'
print(p)
ログイン後にコピー

このコードでは、getPumps() を呼び出す前にコンストラクター (__init__) が呼び出されません。その結果、Pump クラスのインスタンスは作成されず、self 引数が欠落しているため、エラーが発生します。

解決策

問題を解決するには、まず次のことを行う必要があります。 Pump クラスのインスタンスを作成し、そのインスタンスで getPumps() メソッドを呼び出します。正しいコードは次のようになります。

p = Pump()
p.getPumps()
print(p)
ログイン後にコピー

最初にインスタンスを作成すると、self 引数が適切に割り当てられ、getPumps() メソッドを正常に呼び出すことができます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート