Wie kann ich globale Variablen zwischen Python-Modulen teilen, ohne zirkuläre Importe zu verursachen?

DDD
Freigeben: 2024-11-26 12:59:09
Original
532 Leute haben es durchsucht

How Can I Share Global Variables Between Python Modules Without Causing Circular Imports?

Globale Variablensichtbarkeit in importierten Modulen

Problem:

Das Importieren von Modulen kann zu Sichtbarkeitsproblemen führen beim Zugriff auf globale Variablen. Wenn eine globale Variable in einem Hilfsmodul definiert ist, aber im Hauptmodul darauf verwiesen wird, kann ein Fehler auftreten, der darauf hinweist, dass die Variable nicht definiert ist.

Anforderung:

Ein Python-Programm, das eine Verbindung zu einer MySQL-Datenbank herstellt, versucht, eine gemeinsam genutzte Variable (ein Datenbank-Cursorobjekt) zu verwalten, auf die sowohl das Hauptmodul als auch importierte Module, die Dienstprogramme enthalten, zugreifen können Funktionen.

Vorgeschlagene Lösung:

Die vorgeschlagene Lösung schlägt vor, die globale Variable aus dem Hauptmodul in das importierte Hilfsmodul zu importieren. Dieser Ansatz kann jedoch zu zirkulären Importen und Abstürzen führen.

Tatsächliche Lösung:

Es gibt mehrere Lösungen für dieses Problem:

Vermeiden Sie globale Variablen:

Erwägen Sie, die Hilfsfunktionen in Instanzmethoden einer Klasse umzuwandeln. Dadurch entfällt die Notwendigkeit einer gemeinsamen globalen Variablen.

Legen Sie die globale Variable im importierten Modul fest:

Definieren Sie die globale Variable innerhalb des importierten Moduls mit import statt from . Dadurch kann das importierte Modul die Variable bei Bedarf ändern.

Verwenden Sie ein externes Modul für gemeinsam genutzte Variablen:

Wenn die globale Variable von mehreren Modulen gemeinsam genutzt wird, platzieren Sie sie in einem separaten Modul und lassen Sie es von allen anderen Modulen importieren. Dies gewährleistet einen konsistenten Zugriff auf die Variable.

Fügen Sie die Variable zum integrierten Modul hinzu (nicht empfohlen):

Für echten globalen Zugriff fügen Sie die Variable dem integrierten Modul hinzu . Dieser Ansatz sollte jedoch mit Vorsicht verwendet werden, um Konflikte mit vorhandenen integrierten Funktionen zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich globale Variablen zwischen Python-Modulen teilen, ohne zirkuläre Importe zu verursachen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage