Python「TypeError: '型' object is not callable」のエラー原因と解決方法を紹介します。
結論
まず、出力されたエラーの内容を見てみましょう。
「TypeError: '型' object is not callable」は、「この'型'のオブジェクトは呼び出し可能(callable)ではない」という意味です。
関数ではないオブジェクトを関数呼び出しのように記述した際に発生するエラーです。
このエラーが発生するサンプルプログラムを見ていきます。
listの要素へのアクセス方法を誤っており、sample_listを関数呼び出しとして利用しようとしているため「TypeError: 'list' object is not callable」が発生しています。
よくある原因
組み込み関数と同名の変数を定義
組み込み関数と同じ名前の変数を定義しているケースです。
組み込み関数とは、print(), len()などPythonインタプリタによって事前に定義された関数です。
これらの関数と同じ名前を定義してしまうと、変数名として上書きされるため、
組み込み関数の呼び出し時に変数を参照してしまいます。
特に、グローバル変数が組み込み関数と同一の場合、原因となる変数を探しにくくなります。
組み込み関数と同じ名前の変数は定義しないようにしましょう。
以下の例はlen()
を変数に上書きしています。
変数を関数呼び出し
listやdict、基本型(int, float, strなど)を関数として利用するケースです。
配列の要素の参照方法などを確認しましょう。
関数と変数を混同している
関数名と変数名に類似した名称を定義している起こりやすいケースです。
関数名と変数名の命名規則を明確化して重複を防ぐようにしましょう
エラーが発生したときのチェックポイント
- 組み込み関数と同じ名前の変数を定義していないか?
- 変数(配列など)の参照方法を誤っていないか?
-
変数名と関数名を混同していないか?
関数名と認識している変数は本当に関数か?
0 件のコメント :
コメントを投稿