Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich „execfile()' von Python 2 in Python 3 ersetzen?

Wie kann ich „execfile()' von Python 2 in Python 3 ersetzen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-02 02:05:10475Durchsuche

How Can I Replace Python 2's `execfile()` in Python 3?

Alternativen zu execfile in Python 3

Die Entfernung von execfile() in Python 3 hat viele dazu gebracht, sich zu fragen, wie Skripte schnell geladen werden können. Während execfile() möglicherweise nicht mehr vorhanden ist, gibt es alternative Optionen.

Lösung:

In der Dokumentation wird empfohlen, die Funktion exec() mit dem Inhalt der Datei zu verwenden, die als übergeben wird Argument:

exec(open("filename").read())  # Replaces execfile("filename")

Erklärung:

execfile() analysiert und eine Datei ausgeführt, während exec() einen String ausführt. Indem wir den Dateiinhalt in einen String einlesen und an exec() übergeben, erzielen wir den gleichen Effekt wie execfile().

Zusätzliche Überlegungen:

  • Diese Methode behält den lokalen Namespace während der Ausführung bei, im Gegensatz zu execfile(), das einen neuen erstellt.
  • Es ist wichtig zu beachten, dass diese Technik Sicherheit bieten kann Risiken, also verwenden Sie es nur bei Bedarf und treffen Sie entsprechende Vorsichtsmaßnahmen.

Weiterführende Literatur:

  • [Was ist neu in Python 3.0](https://docs.python.org/3/whatsnew/3.0.html)
  • [execfile](https://docs.python.org/2/librar y/functions.html#execfile)
  • [exec](https://docs.python.org/3/library/functions.html#exec)

Das obige ist der detaillierte Inhalt vonWie kann ich „execfile()' von Python 2 in Python 3 ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn