Wie repliziere ich die PHP-Funktionalität „compact()' und „extract()' in Python?

Susan Sarandon
Freigeben: 2024-10-25 19:44:02
Original
404 Leute haben es durchsucht

 How to Replicate PHP's compact() and extract() Functionality in Python?

PHPs Compact()- und Extract()-Gegenstücke in Python

PHPs Compact()-Funktion stellt eine Hashtabelle mit Werten zusammen, die der angegebenen Symboltabelle entsprechen Namen, und extract() kehrt diesen Prozess um. Während Python locals(), globals() und vars() bereitstellt, fehlt ihm ein integrierter Mechanismus zum Isolieren eines Teils dieser Werte.

Implementierung von Compact()

Bei Bedarf können Sie ein Python-Äquivalent von compact() wie folgt implementieren:

<code class="python">import inspect

def compact(*names):
    caller = inspect.stack()[1][0] # caller of compact()
    vars = {}
    for n in names:
        if n in caller.f_locals:
            vars[n] = caller.f_locals[n]
        elif n in caller.f_globals:
            vars[n] = caller.f_globals[n]
    return vars</code>
Nach dem Login kopieren

Extract() in Python

Versuch, einen Extrakt zu erstellen ()-Funktion in Python ist nicht empfehlenswert. Frühere Python-Interpreter ermöglichten eine Problemumgehung, aber in modernen Versionen funktioniert sie nicht mehr.

Pythons Perspektive

Von der Verwendung von compact() und extract() wird im Allgemeinen abgeraten Python, da es den pythonischen Prinzipien der Deutlichkeit, Einfachheit und Klarheit zuwiderläuft. Diese Funktionen können jedoch Nischenanwendungen beim Debuggen, bei der Post-Mortem-Analyse oder bei der Erstellung dynamischer Variablen haben.

Das obige ist der detaillierte Inhalt vonWie repliziere ich die PHP-Funktionalität „compact()' und „extract()' in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!