Seite 1 von 1
Importierte Funktion wird nicht ausgeführt
Verfasst: Freitag 31. August 2018, 16:31
von Whatgewesen
Hallo zusammen,
ich habe folgenden Code geschrieben.
Code: Alles auswählen
import Testfunktion_02
def liste_übergeben(liste, funktion):
print("\n-----")
for element in liste:
print(element)
print("-----\n")
liste = [1, 2, 3, 4, 5]
liste_übergeben(liste, Testfunktion_02)
# Testfunktion_02
def funktion_1 (zahl):
print(zahl * 2)
def main():
print("Hallo")
if __name__ == "__main__":
main()
Wenn ich ihn nun auf der Konsole ausgeben lasse, passiert jedoch das:
Ich habe doch in die Testfunktion geschrieben, dass alle Werte verdoppelt werden sollen. Wieso geschieht dass denn hier nicht, ich habe doch die Funktion korrektermaßen importiert.
Danke für Eure Hilfe!
Re: Importierte Funktion wird nicht ausgeführt
Verfasst: Freitag 31. August 2018, 16:53
von nezzcarth
Ich finde dein Beispiel leider recht verwirrend. Mit 'import <name>' importiert man ja komplette Module, d.h. in deinem Fall ein Modul namens "Testfunktion_02.py". Daher ist der Name unpassend gewählt, denn das ist ja keine Funktion. Ein Modul kann höchstens Funktionen enthalten. Die würdest du dann als 'Testfunktion_02.<funktions_name>(..)' aufrufen.
Wozu ist denn der Abschnitt:
Code: Alles auswählen
# Testfunktion_02
def funktion_1 (zahl):
print(zahl * 2)
gedacht? Soll das nur ein Beispiel sein, um zu zeigen, wie die Funktion aus dem anderen Modul, aussieht, oder soll das irgendetwas machen? Denn eigentlich ist das nur eine Funktion, die nirgendwo aufgerufen wird, mit einem Kommentar davor.
In der Zeile 'liste_übergeben(liste, Testfunktion_02)') übergibst du dann das Modul als Parameter und verwendest es in der Funktion wie eine Funktion; das ist sehr ungewöhnlich.
Ansonsten: Die Listenerzeugung und der Listenaufruf gehören in die 'main'-Funktion. Eingerückt wird per Konvention mit vier Leerzeichen.
Re: Importierte Funktion wird nicht ausgeführt
Verfasst: Freitag 31. August 2018, 17:06
von Whatgewesen
@nezzcarth
Der von dir ausgewählte Code sollte nur verdeutlichen, was die Testfunktion macht.
Ich würde gerne die Funktion aus Testfunktion übergeben, welche einfach alle Zahlen der Liste verdoppelt. Wie kann man das tun, da er mit im Moment einfach nur die Zahlen der Liste ausgibt
Re: Importierte Funktion wird nicht ausgeführt
Verfasst: Freitag 31. August 2018, 17:13
von Whatgewesen
@nezzcarth
Danke für deine Hilfe. Ich hab den Fehler gefunden

Re: Importierte Funktion wird nicht ausgeführt
Verfasst: Sonntag 2. September 2018, 06:30
von miracle173
Whatgewesen hat geschrieben: Freitag 31. August 2018, 16:31
Hallo zusammen,
ich habe folgenden Code geschrieben.
Code: Alles auswählen
import Testfunktion_02
def liste_übergeben(liste, funktion):
print("\n-----")
for element in liste:
print(element)
print("-----\n")
liste = [1, 2, 3, 4, 5]
liste_übergeben(liste, Testfunktion_02)
# Testfunktion_02
def funktion_1 (zahl):
print(zahl * 2)
def main():
print("Hallo")
if __name__ == "__main__":
main()
Wenn ich ihn nun auf der Konsole ausgeben lasse, passiert jedoch das:
Ich habe doch in die Testfunktion geschrieben, dass alle Werte verdoppelt werden sollen. Wieso geschieht dass denn hier nicht, ich habe doch die Funktion korrektermaßen importiert.
Danke für Eure Hilfe!
Die Funktion 'liste_übergeben' tut genau das, was du verlangst. Es druckt die Elemente der Liste 'liste'aus, die ihr übergeben wird. Der Parameter 'funktion' wird in 'liste_übergeben' nicht weiter verwendet.