globale Variablen in Funktionen ändern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Smion
User
Beiträge: 1
Registriert: Dienstag 13. April 2021, 18:31

Servus, ich habe ein Problem, wenn ich eine Funktion in einem Modul definiere und in einem anderen benutze, wenn es um globale Variablen geht.

Modul hilfe:

Code: Alles auswählen

def hallo():
    global gruß
    gruß = "hallo"


Modul main:

Code: Alles auswählen

from hilfe import hallo

gruß = "griasdi"
hallo()
print (gruß)
wenn ich das jetzt ausführe wird "griasdi" geprinted
wenn ich die Definition der Funktion allerdings im gleichen Modul habe und nicht erst impoertiere, dann druckt er hallo.

Woran liegt das und was muss ich tun, damit er die Variable auch ändert, wenn die Funktion importiert ist
Benutzeravatar
__blackjack__
User
Beiträge: 14056
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Smion: ``global`` ist ja schon schlimm genug, aber es ist schön, dass das auf das Modul begrenzt ist. Jetzt willst Du noch mehr komische Magie. Vergiss ``global`` komplett und löse das *ordentlich*. Was auch immer ”das” ist. ``global`` ist keine Lösung sondern ein Problem.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten