logo

Python で「list」オブジェクトを呼び出すことができない問題を修正する方法

リストは、さまざまなデータ型の要素を格納するために使用されるオブジェクトでもあります。 Python プログラムでリストを使用しているときに、「リスト」オブジェクトを呼び出すことができませんというエラーがよく見られます。この記事では、このエラーが発生する理由とその解決方法について説明します。

Python では「list」オブジェクトを呼び出すことができないとはどういう意味ですか?

「list」オブジェクトは呼び出し可能ではありません エラーは、Python 開発者が遭遇する一般的な実行時エラーです。この問題は、リスト オブジェクトを関数であるかのように呼び出そうとしたときに発生します。 Python では、リストは順序付けられた項目のコレクションを保持するオブジェクトです。これらは、関数のような呼び出しではなく、インデックス付けまたはスライスを使用してアクセスされます。

Javaクラス図

構文



 ''list' object is not callable'>

以下は、Python の ‘ list’ オブジェクトが呼び出し可能ではない場合に発生する理由です。 パイソン :

  • 変数名 機能と競合します。
  • 括弧の誤用
  • メソッドがプロパティと衝突します。

変数名が関数と競合しています。

以下のコードでは、リストが変数名として割り当てられており、組み込み関数と競合しています。 リスト() これを解決するには、変数の名前を変更するか、明示的にアクセスします。 list() 関数 から 組み込みモジュール。

Python3
# Create a list list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Create a list of quantity moreNumbers = list(range(10,21)) # Print the list and quantity print(list) print(moreNumbers)>

出力

Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 4, in moreNumbers = list(range(10,21)) TypeError: 'list' object is not callable>

括弧の誤用

以下のコードでは、リストのインデックス付けに角括弧の代わりに括弧が誤用されており、「 リスト 「オブジェクトは呼び出し可能ではありません」エラー。

Python3
items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items(3))>

出力

Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 3, in print(items(3)) TypeError: 'list' object is not callable>

メソッドがプロパティと衝突します。

以下の例では、メソッド間の名前の競合によりエラーが発生します。 マーク() そして財産のマーク。ここで、Student クラスには属性マークがあり、最初は学生のマークを含むリストとして割り当てられます。ただし、クラスにはメソッドも定義されています。 マーク() 、同じマークのリストを返します。

df.loc
Python3
class Student: def __init__(self, name, marks): self.name = name self.marks = marks def marks(self): return self.marks student = Student('Lalit', [95, 67, 81, 64, 87]) # Generates the error print(student.marks())>

出力

Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 11, in print(student.marks()) TypeError: 'list' object is not callable>

のソリューション Python の「リスト」オブジェクトは Python では呼び出すことができません

以下は、Python の「リスト」オブジェクトが Python で呼び出せない問題を解決するアプローチです。

  • 正しい変数名
  • 括弧の正しい使用法
  • 競合するメソッドと属性の名前を変更する

正しい変数名

以下の解決策では変数の名前を変更します リスト 組み込み関数名のシャドウイングを避けるため。リスト内の要素にアクセスするには、括弧の代わりに角括弧をインデックス付けに使用します。両方のリストを印刷して、その内容を表示します。

Python3
# Create a list one2nine = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Create a list of quantity moreNumbers = list(range(10,21)) # Print the list and quantity print(one2nine) print(moreNumbers)>

出力
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]>

括弧の正しい使用法

リスト項目にアクセスするには、以下のコードで使用されているように、常に角かっこを使用します。

Python3
items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items[3])>

出力
Ruler>

競合するメソッドと属性の名前を変更する

プロパティの名前を次のように変更することで、 マーク そしてその方法は get_marks() 、名前の競合を排除し、次のことを保証します。 Student.get_marks() TypeError が発生することなくマークのリストを取得します。

Python3
class Student: def __init__(self, name, marks): self.name = name # Change the property name to _marks self._marks = marks # Rename the method to get_marks def get_marks(self): return self._marks student = Student('Lalit', [95, 67, 81, 64, 87]) # Outputs the list of marks print(student.get_marks())>

出力
[95, 67, 81, 64, 87]>