Seite 1 von 1

Wofür das (*args)

Verfasst: Dienstag 22. Dezember 2020, 13:15
von red | Ali
Hallo,
ich habe eine Frage zu dem .bind() Command. Und zwar, wenn ich etwas an z.B. <Return> binde, und es bei Return eine Funktion ausgeführt werden soll, muss in dieser Funktion (*args) stehen.
Warum?

Code: Alles auswählen

    paswd.bind('<Return>', log)

def log(*args):
    print('Enter gedrückt')

Re: Wofür das (*args)

Verfasst: Dienstag 22. Dezember 2020, 13:19
von __deets__

Re: Wofür das (*args)

Verfasst: Dienstag 22. Dezember 2020, 13:26
von Sirius3
Nein, da muß nicht *args stehen, sondern da sollte eine Funktion gebunden werden, die ein Argument übergeben bekommt, nämlich event.
Oft wird mit dem Event wenig gemacht.

Code: Alles auswählen

    paswd.bind('<Return>', log)

def log(event):
    print('Enter gedrückt')

Re: Wofür das (*args)

Verfasst: Dienstag 22. Dezember 2020, 13:40
von __blackjack__
Und es ist auch besser da nicht ``*args`` hin zu schreiben, denn damit muss sich der Leser ja fragen was das denn nun genau ist. Wenn da `event` oder `_event` steht, dann ist das verständlicher.

Re: Wofür das (*args)

Verfasst: Dienstag 22. Dezember 2020, 14:33
von red | Ali
Sirius3 hat geschrieben: Dienstag 22. Dezember 2020, 13:26 Nein, da muß nicht *args stehen, sondern da sollte eine Funktion gebunden werden, die ein Argument übergeben bekommt, nämlich event.
Oft wird mit dem Event wenig gemacht.

Code: Alles auswählen

    paswd.bind('<Return>', log)

def log(event):
    print('Enter gedrückt')
Okay, danke.
Aber warum braucht man das im Allgemeinen? Wenn ja <Return> gedrückt wird, soll ja nur diese Funktion ausgeführt werden. Und ist ein 'Event' einfach, wenn irgendwas passiert?

Re: Wofür das (*args)

Verfasst: Dienstag 22. Dezember 2020, 15:11
von __deets__
Der bind-Mechanismus ist generisch. Der funktioniert fuer alle moeglichen Arten von Ereignissen. Und da kann es noch zusaetzliche, wertvolle Informationen geben, die ein Ereignis mitliefert. ZB bei einem Button-Click der Maus will man ja auch oft wissen WO das passiert ist. Die Koordinate steht dann im Event-Objekt zur Verfuegung.

Und ich hab's schonmal erwaehnt: bitte keine full-quotes von Posts!