Variablenwert in Funktion ändern
-
gaistg -
12. Februar 2015 um 21:08 -
Erledigt
L
I
V
E
Stammtisch ab 20:30 Uhr im Chat
-
-
Variablenwert in Funktion ändern? Schau mal ob du hier fündig wirst!
-
Hallo gaistg,
Du solltest dann die variable aus der Funktion übergeben. -
-
- Offizieller Beitrag
-
Hallo,
@gastig: was du suchst ist der Scope von Variablen in Python. Ist z.B. hier http://www.python-course.eu/python3_global…l_variables.php und hier https://docs.python.org/2/reference/executionmodel.html.
Was hast du denn genau vor? Je nach dem macht's vielleicht auch Sinn, eine Klasse anzulegen und die Variable zum Attribut der Klasse zu machen.
Gruß, noisefloor
-
Sowas hatten wir hier in letzter Zeit schon mal, finde den Beitrag aber leider gerade nicht wieder...
Es gibt (wie immer) mehrere Möglichkeiten - allerdings ist die erste die ich gleich erwähne, nicht so toll und sollten vermieden werden!
Du deklarierst ja außerhalb einer Anweisung eine Variable. Diese Variable ist in der Anweisung abrufbar, da diese Variable Global ist. Variablen innerhalb einer Anweisung sind aber nur Local, um Globale nicht zu beeinträchtigen.
Nun kommt das Beispiel welches du aber vermeiden solltest.
Um innerhalb einer Anweisung eine Variable zu verändern, kann diese ebenfalls als globale deklariert werden:[code=php]
variable = 0def funktion():
global variable
variable = 1funktion()
print(variable)
[/php]Das funktioniert natürlich aber ich wiederhol das noch mal: Sollte tunlichst vermieden werden !!
Die bessere und bevorzugte Möglichkeit ist jene die auch PIter angesprochen hat: Die Variable durch die Anweisung zurück geben lassen:
[code=php]
variable = 0def funktion():
bla = 1
return blaprint(variable)
variable = funktion()
print(variable)
[/php] -
Nun, dass ist eine ähnliche Funktion, wie ich sie gezeigt habe. Trotzdem sollte man, wenn man programmieren möchte den Unterschied zwischen lokalen und globalen Variablen kennen, auch wenn man globale Variablen meiden sollte, erst recht in der OOP.
-
- Offizieller Beitrag
Jörg
natürlich sind die ähnlich ;). Ich sag ja nicht das es falsch ist. Ich finde es anschaulicher, wenn man sieht das man etwas in eine Funktion gibt, in der Funktion was gemacht wird und abschliessend etwas aus der Funktion zurückfließt. Wenn man globale Varibalen nicht kennt, geht die Welt nicht unter und man gewöhnt sich gar nicht erst an den, so anscheinend, offensichtlichen Einfachen Weg. Solange ich in diesem Forum bin, werde ich gegen globale Varibalen in python und wildcard imports von modulen kämpfen -
Wenn man aber nicht den Unterschied kennt weiß man auch nicht wie diese zu erkennen sind und weiß somit auch nicht warum man diese nicht verwenden sollte ... es gibt ja nicht nur dieses Forum, was ist also wenn er wo anders liest das es mit "global variable" gemacht wurde und dann denkt das wäre besser? Wurde ihm ja nicht wirklich erklärt bzw gezeigt... also, ruhe ihr 2
-
Und anschließend fehlt noch die Erklärung warum lokale Variablen besser sind als globale...
-
- Offizieller Beitrag
Einfache Zusammenfassung. Wenn man mal explizit nach sideeffects python global variable sucht, findet man ein paar schöne Beispiele.
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!