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: 13122
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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten