はじめに
他の人が作ったソースコードを呼び出しする必要がありその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()デバッグみたいな事をするとエラーが出るかもしれません)
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。