Hallo,
ich versuche der Erklärung von __deets__ noch ein Beispiel und die entsprechenden Links beizufügen.
kitebuggy hat geschrieben: ↑Sonntag 28. August 2022, 14:13
Es soll doch zu dieser Funktion gesprungen werden.
[...]Bitte ausführlich erklären.
Aber erst wenn ein Ereignis eintritt und nicht wenn der Python-Interpreter beim Programmstart darüber stolpert.
Wenn du ein Klammerpaar hinter eine Funktion schreibst, dann wird die gleich ausgeführt.
Vielleicht erkennst du das an folgendem Beispiel:
Code: Alles auswählen
def do_something():
return 'Funktion ausgeführt'
def main():
print(do_something())
print(do_something)
if __name__ == '__main__':
main()
Du willst ja dass deine Funktion erst ausgeführt wird, wenn ein Ereignis eingetreten ist, also darfst du kein Klammerpaar schreiben. Du kannst aber auch nicht einfach so deine Parameter ohne Klammer hinter die Funktion schreiben, da wären wir wieder bei dem fehlenden Wunder, das __deets__ beschrieben hat. Damit du die Parameter übergeben kannst und die Funktion nicht sofort aufgerufen wird brauchst du
'lambda' oder url="
https://docs.python.org/3/library/funct ... ls.partial"]'partial'[/url].
Grüße
Dennis