Seite 1 von 1

Fehler bei Änderung einer Variable in einer def-Funktion

Verfasst: Mittwoch 5. April 2023, 10:45
von M4thw
Hallo!
ich hab eine kleine Frage, weil mein Code nicht so funktioniert wie er soll.
Dieser code:

def test():
a = b

a = 1
b = 2

test()
print(a, b)

==> 1 2

soll eigentlich das machen:

a = 1
b = 2

a = b
print(a, b)

==> 2 2

Wo genau ist der Fehler und wie kann man das verbessern?
Danke schonmal im Vorraus :)

Re: Fehler bei Änderung einer Variable in einer def-Funktion

Verfasst: Mittwoch 5. April 2023, 11:04
von __deets__
Der Fehler ist zu denken, dass lokale Variablen in einer Funktion rueckwirken wuerden auf globalen Zustand. Das waere eine Katastrophe, wenn es passieren wuerde - du schreibst eine neue Funktion, und hast den gleichen Namen, und ploetzlich kracht alles.

Die Loesung in diesem Fall ist ganz einfach: Funktionen geben ihre Ergebnisse per return zurueck, und bekommen ihre Argument. Also so etwa:

Code: Alles auswählen

def tuwas(a, b):
    return a*2, b + 3

def main():
    a = 10
    b = 20
    a, b = tuwas(a, b)
    print(a, b)

if __name__ == "__main__":
     main()
In Zukunft auch bitte code-tags verwenden, damit die in Python wichtigen Einrueckungen erhalten bleiben.