Maison > développement back-end > Tutoriel Python > Pourquoi la redéfinition de la fonction « str » provoque-t-elle une TypeError en Python ?

Pourquoi la redéfinition de la fonction « str » provoque-t-elle une TypeError en Python ?

Susan Sarandon
Libérer: 2024-12-11 00:09:18
original
697 Les gens l'ont consulté

Why Does Redefining the `str` Function Cause a TypeError in Python?

Écrasement des fonctions intégrées

Pourquoi l'extrait de code ci-dessous entraîne-t-il une TypeError la deuxième fois qu'il est exécuté ?

def example(parameter):
    global str
    str = str(parameter)
    print(str)

example(1)
example(2)
Copier après la connexion

Lors de la première exécution, le programme s'exécute sans problème. Cependant, lors de son deuxième appel, une erreur est générée :

TypeError: 'str' object is not callable
Copier après la connexion

Analyse

Cette erreur se produit car le code redéfinit la fonction str intégrée dans la fonction exemple. En utilisant le mot-clé global et en attribuant une nouvelle valeur à str, le code écrase l'implémentation originale du type chaîne.

Résolution

Pour résoudre ce problème, évitez de redéfinir fonctions intégrées comme str. Utilisez plutôt un nom différent pour la variable locale et supprimez l'instruction globale :

def example(parameter):
    local_string = str(parameter)
    print(local_string)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal