クラスJavascriptリストメソッド

| | | | | | | | | | | | | | | |

Pythonメソッドの引数は括弧内に指定する必要があります。これは、関数とメソッドが呼び出されるかどうかを示すために括弧を使用するためです。角かっこを使用してメソッドを呼び出すと、「TypeError:`method` objectisnotsubscriptable」エラーが発生します。

このガイドでは、このエラーの意味と、その理由について説明します。それに遭遇します。ソリューションの開発に役立つこのエラーの例を見てみましょう。

TypeError:`method`オブジェクトはサブスクライブされていません

サブスクライブ可能なオブジェクトは、__getitem__メソッドを持つオブジェクトです。これらは、リスト、辞書、タプルなどのデータ型です。 __getitem__メソッドを使用すると、Pythonインタープリターはコレクションから単一のアイテムを取得できます。

すべてのアイテムがサブスクライブされているわけではありません。たとえば、メソッドはそうではありません。これは、__getitem__メソッドを実装していないためです。つまり、括弧で囲まれた構文を使用してメソッドの要素にアクセスしたり、メソッドを呼び出したりすることはできません。

次のコードスニペットを検討してください。

このコードは、インデックス0の位置にあるチーズである「Edam」を返します。関数とメソッドはサブスクライブできるオブジェクトではないため、角括弧を使用して関数またはメソッドを呼び出すことはできません。

シナリオ例

ここでは、チーズをオブジェクトに保存するプログラムを作成します。 「チーズ」チーズを定義するために使用するクラスには、チーズが特定の原産国からのものであるかどうかを確認できるメソッドがあります。

チーズのクラスを定義します。このクラスをチーズと呼びましょう:

クラスには2つのメソッドが含まれています。最初のメソッドは、Cheeseオブジェクトの構造を定義します。 2つ目は、チーズの原産国が特定の値に等しいかどうかを確認できるようにします。

次に、 、Cheeseクラスからオブジェクトを作成しましょう:

変数"edam"はオブジェクトです。チーズに関連付けられている名前はEdamで、その原産国はオランダです。

次に、 get_country()メソッドを呼び出します。

このコードはget_country()メソッド。 <コードメソッド>get_country()は、「edam」オブジェクトの「origin」の値が「Germany」と等しいかどうかを確認します。

コードを実行して、内容を確認します。発生:

コードでエラーが発生しました。

次の行を分析してみましょう。 Pythonデバッガーが正しくないと識別したコード:

このコード行では、角括弧を使用して get_country()メソッドを呼び出します。リスト内の項目にアクセスするために角かっこが使用されているため、これは受け入れ可能な構文ではありません。 関数とオブジェクトはサブスクライブされていないため、角かっこを使用して呼び出すことはできません。

このエラーを修正するには、次が必要です。角かっこを角かっこに置き換えるには:

コードを実行して、何が起こるか見てみましょう。

コードは正常に機能しています。エダムが「オランダ」出身であるかどうかを確認して、指定した値がチーズの原産国と同じであるかどうかに関係なく、すべての場合に機能が機能することを確認してみましょう。

コードは次を返します:
< / p>

指定した値がチーズの原産国と等しい場合、コードは機能します。

結論

「TypeError:`メソッド`をサブスクライブできません」エラーは、角括弧を使用してクラス内のメソッドを呼び出すときに生成されます。このエラーを解決するには、呼び出したいメソッドの名前の後に中括弧を使用してクラスのメソッドのみを呼び出すようにしてください。

これで、この一般的なPythonエラーを次のように解決する準備が整いました。 プロのプログラマー