Python での変更組み込みオブジェクトが予期しないエラーを引き起こす可能性があります。次のコードを考えてみましょう:
def example(parameter): global str str = str(parameter) print(str) example(1) example(2)
このコードを実行すると、2 つの異なるシナリオが発生する可能性があります。 example() への最初の呼び出しは成功しますが、2 番目の呼び出しでは TypeError が発生します。これは、str への 2 番目の代入がその意味を再定義するためです。
Python では、str() は事前定義された関数です。オブジェクトを文字列に変換します。 str に新しい値を割り当てると、この組み込み機能が上書きされます。 str をグローバルとして宣言すると、関数の外部のトップレベル変数を参照する必要があることを示します。
問題を解決するにはTypeError の場合、2 つのオプションがあります:
組み込みオブジェクトを変更すると、意図しない結果が生じる可能性があることに注意してください。 Python のデフォルトの動作との競合を防ぐために、関数内ではローカル変数を使用するようにしてください。
以上がPython で `str = str(...)` が TypeError を引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。