webentwicklung-frage-antwort-db.com.de

Python - Einfachste Möglichkeit, mehrere globale Variablen zu definieren

Ich versuche, nach einer einfachen Möglichkeit zu suchen, mehrere globale Variablen innerhalb einer Funktion oder Klasse zu definieren.

Die naheliegende Option besteht darin, Folgendes zu tun:

global a,b,c,d,e,f,g......
a=1
b=2
c=3
d=4
.....

Dies ist ein vereinfachtes Beispiel, aber im Wesentlichen muss ich Dutzende von globalen Variablen basierend auf der Eingabe einer bestimmten Funktion definieren. Idealerweise würde ich mich darum kümmern, den globalen Namen und Wert festzulegen, ohne den Wert aktualisieren und den globalen Namen unabhängig definieren zu müssen.

Um mehr Klarheit zu schaffen.

Ich suche das Python-Äquivalent (Javascript):

var a = 1
  , b = 2
  , c = 3
  , d = 4
  , e = 5;
11
Stephen Gelardi

Okay, ich bin selbst neu und das war auch ein großes Thema für mich, und ich denke, es hat mit der Formulierung der Frage zu tun (ich habe es beim Googeln genauso ausgedrückt und konnte keine richtige Antwort finden relevant für das, was ich zu tun versuchte). Bitte, jemand korrigiert mich, wenn es einen Grund gibt, warum ich das nicht tun sollte, aber ...

Die beste Möglichkeit, eine Liste globaler Variablen einzurichten, besteht darin, eine Klasse für sie in diesem Modul einzurichten.

class globalBS():
    bsA = "F"
    bsB = "U"

sie können sie jetzt in jeder anderen Funktion aufrufen, ändern usw., indem Sie sie als solche referenzieren:

print(globalBS.bsA)

würde in jeder Funktion dieses Moduls "F" drucken. Der Grund dafür ist, dass Python Klassen als Module behandelt. Daher ist es gut, wenn Sie eine Liste globaler Variablen erstellen, z. B. wenn Sie versuchen, eine Benutzeroberfläche mit mehreren Optionen zu erstellen, wie ich es derzeit mache, ohne eine zu kopieren und einzufügen riesige Liste von Globals in jeder Funktion. Ich würde den Klassennamen so kurz wie möglich halten - vielleicht ein oder zwei Zeichen anstelle eines ganzen Wortes.

Hoffentlich hilft das!

4
qui

Sie können die Variablen einfach entpacken:

global x, y, z
x, y, z = 4, 5, 6
3
d3x

Die eingebaute Funktion globals() bezieht sich auf die globalen Variablen im aktuellen Modul. Sie können es wie ein normales Wörterbuch verwenden

globals()['myvariable'] = 5
print(myvariable) # returns 5

Wiederholen Sie dies für alle Ihre Variablen.

Das sollten Sie jedoch ganz bestimmt nicht tun

0
blue_note

Wenn sie konzeptionell verwandt sind, besteht die Möglichkeit, sie in einem Wörterbuch zu haben:

global global_dictionary
global_dictionary = {'a': 1, 'b': 2, 'c': 3}

Aber wie Sie in Ihrer Frage kommentiert haben, ist dies nicht der beste Ansatz, um das Problem zu lösen, das diese Frage hervorgerufen hat.

0
Martinbaste