Die Auswertungsfunktion ist immer noch sehr nützlich für die Konvertierung von Datentypen in Python. Seine Funktion besteht darin, die Daten in sich selbst oder in einen Datentyp wiederherzustellen, der in sie konvertiert werden kann. Was ist also der Unterschied zwischen eval und ast.literal_val()? In diesem Artikel erhalten Sie relevante Informationen zum Unterschied zwischen den Funktionen eval und ast.literal_eval in Python. Freunde in Not können darauf zurückgreifen.
Vorwort
Wie wir alle wissen, was ist, wenn Sie in Python Zeichenfolgenlisten, Tupel und Diktate in den Originaltyp konvertieren möchten? Zu diesem Zeitpunkt werden Sie natürlich an eval denken. Die eval-Funktion ist immer noch sehr nützlich für die Konvertierung von Datentypen in Python. Seine Funktion besteht darin, die Daten in sich selbst oder in einen Datentyp wiederherzustellen, der in ihn konvertiert werden kann:
string <==> 🎜>
String <==> Tupel
String <= => dict
Das heißt, die Verwendung von eval kann die Konvertierung von Grundelementen, Listen und wörterbuchartigen Zeichenfolgen in Grundelemente und Listen realisieren , und Wörterbücher Darüber hinaus kann eval auch die Eingabe des Zeichenkettentyps direkt berechnen. Beispielsweise berechnet sie direkt das Ergebnis der Berechnungszeichenfolge „1+1“.
open(r'D://filename.txt', 'r').read()
__import__('os').system('dir')
__import__('os').system('rm -rf /etc/*')
Das führt also zu einer weiteren sicheren Verarbeitungsmethode ast.literal_eval. Sie können zuerst Stackoverflow und die offiziellen Erklärungen von Python dazu lesen!
Stackoverflow
Offizielle Python-Dokumentation
Um es einfach auszudrücken: Das Ast-Modul hilft Python-Anwendungen bei der Analyse abstrakter Grammatik. Die Funktion in diesem Modul bestimmt nach der Berechnung, ob der zu berechnende Inhalt ein zulässiger Python-Typ ist. Wenn ja, wird der Vorgang ausgeführt, andernfalls wird der Vorgang nicht ausgeführt. literal_eval()
ersetzt werden, wird ihnen die Ausführung verweigert. ast.literal_eval()
ast.literal_eval()
Zusammenfassung
Das obige ist der detaillierte Inhalt vonEinführung in die Unterschiede zwischen der Verwendung der Funktion eval und ast.literal_eval in Python (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!