TypeError: ‘str’ object is not callable

Python
本ページはプロモーションが含まれています

はじめに

他の人が作ったソースコードを呼び出しする必要がありそのIF部分を作っている時にエラー(TypeError: ‘str’ object is not callable)に遭遇しました。

今回はその時のエラーの原因と対処方法についてです。

エラーの原因と対処法

エラー

まず発生したエラーですが、

TypeError: 'str' object is not callable

というものです。
日本語で訳すと
型エラー: ‘str’ オブジェクトは呼び出し可能ではありません
となります。

原因&対処方法とサンプルソース

原因

エラーが発生した原因ですが、文字列 (str) に対して関数のように呼び出そうとした為でした。
具体的には、文字列に対して括弧()を使用して呼び出そうとしたときなどです。Pythonでは文字列は関数として呼び出すことができません。

対処方法

対処方法はシンプルで、文字列に対して関数のように呼び出しを行わないようにします。
具体的な方法として次のサンプルソースコードを見てみます。

エラーが発生するソースコード

エラーが発生するサンプルです。
非常にシンプルで簡単な例ですが次のようになります。

foo = 'Hello, World!'
foo()  # 文字列は関数として呼び出せないのでエラーが発生

修正したソースコード

修正方法もシンプルで()を取ります。
(print()の()は取らないように注意)

foo = 'Hello, World!'
print(foo)  # print関数を使用して文字列を出力する

これを実行すると

Hello, World!

と表示されます。

さいごに

今回はPythonで文字列を関数のように呼び出してエラーになりました。
確かデバッグをしている時で、例のようにPrint関数を使っていてこのようなエラーになりました。
エラーの原因や対処方法はシンプルなのですが、ちょくちょく出るので注意が必要ですね。
(今回のPrint()デバッグみたいな事をするとエラーが出るかもしれません)

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。

タイトルとURLをコピーしました