Seite 1 von 1
Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?
Verfasst: Dienstag 28. Februar 2017, 09:29
von FinjaS
Wenn ich zum beispiel folgendes habe:
x = 50
def func():
->x += 1
func()
Dann kommt da ja eine Fehlermeldung raus.
Und wenn man sowas macht:
x = 50
def func(x):
->x += 1
func()
Dann funktioniert das zwar, aber die beiden x-Variablen sind dann ja nicht das selbe.
meine Frage ist jetzt, wie man externe Variablen "importieren" oder interne Variablen "exportieren" kann.
Re: Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?
Verfasst: Dienstag 28. Februar 2017, 09:39
von snafu
Externe Variable zu importieren bedeutet, dass man sie als Funktionsargumente übergibt. Das hast du ja bereits herausgefunden. Interne Variablen zu exportieren, ist die Rückgabe via return. Wenn du das mit deinem x machst, dann ist das lokale x aus der Funktion auch außerhalb der Funktion verfügbar. Bei deinem Beispiel würdest du einfach return x + 1 schreiben. Das sind übrigens absolute Programmiergrundlagen.
Re: Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?
Verfasst: Dienstag 28. Februar 2017, 09:50
von snafu
Übrigens: Da du anscheinend noch sehr am Anfang stehst, möchte ich dir das
deutsche Python-Tutorial empfehlen. Das ist die offizielle Einführung in Python. Sie wurde von einigen Mitgliedern hier aus dem Forum ins Deutsche übersetzt und wird laufend aktualisiert. Derzeitiger Stand ist Python 3.3 - damit kommt man auch gut zurecht, wenn man Python 3.5 oder neuer verwendet. Was sich zwischen diesen Versionen noch geändert hat, ist für Anfängercode nicht so wichtig.
Falls es dir am Anfang zuviel "Blabla" ist, kannst du direkt mit
Kapitel 3 - Eine informelle Einführung in Python einsteigen.
Re: Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?
Verfasst: Dienstag 28. Februar 2017, 11:05
von Zizibee
Wie schön, hier kann ich vielleicht auch mal helfen
Du kannst einer Funktion mehrere Werte übergeben, die innerhalb der Funktion Variablen zugewiesen werden. Diese Variablen definiert du direkt mit der Funktion. Das sind die Variablen in der Klammer direkt hinter dem Funktionsaufruf. Also zum Beispiel:
[codebox=pycon file=Unbenannt.txt]
def func (variable1, variable2):
[/code]
Zurück übergibst du *eine* Variable bzw. Liste durch return. Also:
[codebox=pycon file=Unbenannt.txt]
return variable
[/code]
Als Beispiel könnte das dann so aussehen:
[codebox=pycon file=Unbenannt.txt]
>>> def add_func(input_value, add_value):
... input_value += add_value
... return input_value
...
>>> x = 10
>>> x = add_func(x, 4)
>>> x
14
>>>
[/code]
Re: Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?
Verfasst: Dienstag 28. Februar 2017, 11:50
von snafu
Man kann auch mehrere Variablen zurückliefern. Technisch gesehen ist das zwar ein Tupel. Aber technisch gesehen gibt man auch keine Variablen zurück, sondern den dahinter liegenden Wert bzw das Objekt, das einem Bezeichner zugeordnet wurde. Ob man das jedem Anfänger so kompliziert erklären möchte, ist Ansichtssache.
Re: Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?
Verfasst: Dienstag 28. Februar 2017, 12:30
von Zizibee
snafu hat geschrieben:Aber technisch gesehen gibt man auch keine Variablen zurück, sondern den dahinter liegenden Wert bzw das Objekt, das einem Bezeichner zugeordnet wurde.
Beim Aufruf der Funktion habe ich noch daran gedacht "Werte übergeben" zu schreiben, beim "return" war der Gedanke dann wohl schon wieder weg...
