Wie kann man Variablen die innerhalb einer Funktion benutzt wurden "exportieren"?

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
FinjaS
User
Beiträge: 4
Registriert: Montag 27. Februar 2017, 18:28

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.
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ü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.
Zizibee
User
Beiträge: 229
Registriert: Donnerstag 12. April 2007, 08:36

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]
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
Zizibee
User
Beiträge: 229
Registriert: Donnerstag 12. April 2007, 08:36

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... :roll:
Antworten