組み込み関数の上書き
以下のコード スニペットが 2 回目に実行されると TypeError が発生するのはなぜですか?
def example(parameter): global str str = str(parameter) print(str) example(1) example(2)
初めて実行するとき、プログラムは問題なく実行されます。ただし、2 回目に呼び出すと、次のエラーがスローされます。
TypeError: 'str' object is not callable
分析
このエラーは、コード内で組み込み str 関数が再定義されているために発生します。関数の例。 global キーワードを使用し、新しい値を str に割り当てることにより、コードは文字列型の元の実装を上書きします。
解決策
この問題を解決するには、再定義を避けてください。 str のような組み込み関数。代わりに、ローカル変数に別の名前を使用し、グローバル ステートメントを削除します:
def example(parameter): local_string = str(parameter) print(local_string)
以上がPython で `str` 関数を再定義すると TypeError が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。