Verknüpfung von Funktionen

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
mariusdiel1
User
Beiträge: 1
Registriert: Freitag 13. Mai 2022, 15:08

Guten Tag, ich fange gerade mit dem Programmieren an und habe eine Frage.
Wie kann ich bestimmte Werte aus einer Funktion in eine andere Funktion übertragen, sodass ich diese sozusagen verknüpfe und auf die Werte zugreifen kann?

Beispiel:
def main()
......
response = requests.request("GET", data['url'].......
......
def yaml_test():
yaml_file = open('resources\config.yaml', 'r')
data = yaml.load(yaml_file, Loader=Loader)
return data


Erklärung: def yaml_test() soll in der main funktion erkannt werden, sodass ich auf data und yaml_file Zugriff habe (in der main funktion).
response = requests.request("GET", data['url'] .... aus der main funktion: data soll erkannt werden.

Danke im Vorraus für die Hilfe, und bitte keine Kritik, ich bin wie gesagt einsteiger.
Benutzeravatar
sparrow
User
Beiträge: 4184
Registriert: Freitag 17. April 2009, 10:28

Warum sollte man keine Kritik üben, weil du Einsteiger bist?

Setze deinen Code hier immer in Code-Tags, damit die Einrückung erhalten bleibt. Die Code Tags werden eingefügt wenn man den </> Button im vollständigen Editor drückt.

Dateien öffnet man mit dem with-statement.

So wie du denkst, funktionieren Funktionen nicht. Die Namensräume sind von einander getrennt.
Funktionen bekommen alles, was sie brauchen als Parameter und geben das Resultat per return zurück

Du musst die Funktion also aufrufen und bekommst dann den Wert von data zurück.

Das Tutorial in der offiziellen Dokumentation ist ein guter Einstiegspubkt um Python zu lernen.
Benutzeravatar
Dennis89
User
Beiträge: 1153
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

um die Erklärung von @sparrow mit einem kleinen Beispiel zu verdeutlichen:

Code: Alles auswählen

def do_something(value):
    return value + 1


def main():
    new_value = do_something(1)
    print(new_value)


if __name__ == "__main__":
    main()
'do_something' wird aufgerufen, der erähnte Parameter, denn die Funktion brauch wird beim Aufruf in der Klammer angegeben und ist in diesem Fall in der Funktion 'do_something' an den Namen 'value' gebunden. Das was die Funktion mit 'return' zurück gibt, ist in der aufrufenden Funktion an den Namen, welcher links vom Gleichheitszeichen stehen, gebunden. In dem Fall 'new_value'.
Hoffe das ist etwas verständlich.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten