ホームページ  >  記事  >  バックエンド開発  >  Python で str が呼び出し可能ではない問題の詳細な説明と解決策

Python で str が呼び出し可能ではない問題の詳細な説明と解決策

高洛峰
高洛峰オリジナル
2017-02-13 16:14:101686ブラウズ

Python で str を呼び出すことができない問題の詳細な説明と解決策

質問:

Python コードで、実行プロセス中にエラー メッセージが発生しました:

Python コード:

def check_province_code(province, country):
  num = len(province)
    
  while num <3:
    province = &#39;&#39;.join([str(0),province])
    num = num +1
    
  return country + province

実行エラーメッセージ:

check_province_code(&#39;ab&#39;, &#39;001&#39;)
---------------------------------------------------------------------------
TypeError                 Traceback (most recent call last)
<ipython-input-44-02ec8a351cce> in <module>()
----> 1 check_province_code(&#39;ab&#39;, &#39;001&#39;)
  
<ipython-input-43-12db968aa80a> in check_province_code(province, country)
   3 
   4   while num <3:
----> 5     province = &#39;&#39;.join([str(0),province])
   6     num = num +1
   7 
  
TypeError: &#39;str&#39; 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: &#39;str&#39; object is not callable

これで問題は明確に定義されました。よく考えた結果、定義するときに str をランダムに使用したことがわかりました。変数なので、str 関数は上書きされます。以下のような操作を実行しました:

str = &#39;123&#39;

デフォルトのstr関数を復元します

Pythonアプリケーションを再起動し、strが上書きされているコード部分を削除します。

概要

Python には多くの関数やクラスが組み込まれています。変数を自分で定義する場合は、それらの名前を上書きしたり繰り返したりしないように注意してください。

読んでいただきありがとうございます、皆さんのお役に立てれば幸いです、このサイトをサポートしていただきありがとうございます!

Python で str を呼び出すことができない問題の詳細な説明と解決策については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。