Variablenübergabe von Unterfunktion an Unterfunktion

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
MarcNAV
User
Beiträge: 52
Registriert: Freitag 16. Mai 2014, 11:39

Such schon länger nach einer Lösung und müßte eigentlich nicht schwierig sein. Ich möchte die Variable name von funktion1 an funktion2 übergeben. Hab schon mit global und return methoden rumgespielt, funktioniert aber leider nich.

P.S.: das ist ein sehr vereinfachtes Modell meines Programmes. In beiden Unterfunktionen laufen mehrere Rechenschritte ab.

Code: Alles auswählen

def funktion1():

    name = 'Hans'
    

def funktion2():

    print name

def main():

    funktion1()
    funktion2()


if __name__ == '__main__':
    main()
MarcNAV
User
Beiträge: 52
Registriert: Freitag 16. Mai 2014, 11:39

Ah okay so funktionierts. Ein Kollege hats mir gerade erklärt.

Code: Alles auswählen

def funktion1():

    global name
    name = 'Hans'
    

def funktion2():

    print name

def main():

    funktion1()
    funktion2()


if __name__ == '__main__':
    main()



Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Rückgabewerte und Parameter sind ein elementarer Bestandteil jedes nichttrivialen Programms. Schau dir das Tutorial zu Functions noch mal an und frag dann gezielt nach, wenn du Probleme hast.

Code: Alles auswählen

def funktion1():
    result = "Monty"         
    return result
   
def funktion2(value):
    print value
 
def main():
    name = funktion1()
    funktion2(name)
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

MarcNAV hat geschrieben:Ah okay so funktionierts. Ein Kollege hats mir gerade erklärt.
Ja, so funktioniert es, aber die Verwendung von global ist fast immer extrem schlechter Stil. Das ist die Notlösung für Anfänger die es nicht besser wissen und/oder erklärt bekommen. Mit global schaffst du unnötige Abhängigkeiten zwischen einzelnen Bestandteilen deiner Software.

Die Verwendung von global in diesem Fall zeigt, dass der Kollege definitiv auch ein Programmierneuling ist.
MarcNAV
User
Beiträge: 52
Registriert: Freitag 16. Mai 2014, 11:39

Danke gut zu wissen /me. War mit dem global auch nicht so zufrieden.
Antworten