Python で str を呼び出すことができない問題の詳細な説明と解決策
質問:
Python コードで、実行プロセス中にエラー メッセージが発生しました:
Python コード:
def check_province_code(province, country): num = len(province) while num <3: province = ''.join([str(0),province]) num = num +1 return country + province
実行エラーメッセージ:
check_province_code('ab', '001') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-44-02ec8a351cce> in <module>() ----> 1 check_province_code('ab', '001') <ipython-input-43-12db968aa80a> in check_province_code(province, country) 3 4 while num <3: ----> 5 province = ''.join([str(0),province]) 6 num = num +1 7 TypeError: 'str' object is not callable
問題分析とトラブルシューティング:
エラー メッセージ分析から、str は呼び出し可能なオブジェクトではありませんが、確かに以前から呼び出すことができ、Python API ドキュメントでは、これは組み込み関数です。 Python どうやって使えないの?
引き続き検証してみましょう。
コマンドラインで str(123) を実行して数値を文字列に変換します。
>>> str(1233) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-45-afcef5460e92> in <module>() ----> 1 str(1233) TypeError: 'str' object is not callable
これで問題は明確に定義されました。よく考えた結果、定義するときに str をランダムに使用したことがわかりました。変数なので、str 関数は上書きされます。以下のような操作を実行しました:
str = '123'
デフォルトのstr関数を復元します
Pythonアプリケーションを再起動し、strが上書きされているコード部分を削除します。
概要
Python には多くの関数やクラスが組み込まれています。変数を自分で定義する場合は、それらの名前を上書きしたり繰り返したりしないように注意してください。
読んでいただきありがとうございます、皆さんのお役に立てれば幸いです、このサイトをサポートしていただきありがとうございます!
Python で str を呼び出すことができない問題の詳細な説明と解決策については、PHP 中国語 Web サイトに注目してください。