Maison >développement back-end >Tutoriel Python >Introduction aux différences entre l'utilisation de la fonction eval et ast.literal_eval en Python (image et texte)
La fonction eval est toujours très utile pour convertir des types de données en Python. Sa fonction est de restaurer les données sur elles-mêmes ou sur un type de données qui peut y être converti. Alors, quelle est la différence entre eval et ast.literal_val() ? Cet article vous présentera des informations pertinentes sur la différence entre les fonctions eval et ast.literal_eval en Python. Les amis dans le besoin peuvent s'y référer.
Préface
Comme nous le savons tous, en Python, que se passe-t-il si vous souhaitez convertir une liste de chaînes, un tuple, un dict dans le type d'origine ? A ce moment, vous penserez naturellement à eval. La fonction eval est toujours très utile pour convertir des types de données en python. Sa fonction est de restaurer les données vers elles-mêmes ou vers le type de données dans lequel elles peuvent être converties. Jetons un coup d'œil à l'exemple de code :
string <==> >
chaîne <==> tuple
chaîne < ;= => dict
. Par exemple, elle calculera directement le résultat de la chaîne de calcul « 1+1 ».
open(r'D://filename.txt', 'r').read()
__import__('os').system('dir')
__import__('os').system('rm -rf /etc/*')
Cela conduit donc à une autre méthode de traitement sûre ast.literal_eval Vous pouvez d'abord lire stackoverflow et les explications officielles de Python à ce sujet !
stackoverflow
Documentation officielle Python
sous ce module : déterminera si le contenu à calculer est de type python légal après calcul. Si tel est le cas, l'opération sera effectuée, sinon l'opération ne sera pas effectuée. literal_eval()
, leur exécution sera refusée. ast.literal_eval()
ast.literal_eval()
Résumé
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!