2016-04-12 13 views

Antwort

1

[*args] und {**kwargs} sind beide ungültige Syntax. kwargs ist bereits ein dict, also wenn Sie es als ein dict wollen, verwenden Sie es einfach direkt. args ist ein tuple, also, wenn Sie seinen Wert als Tupel wollen, verwenden Sie es einfach direkt, und wenn Sie aus irgendeinem Grund in eine list verwandeln möchten, können Sie list(args) verwenden.

Sie vorbeifahrende Argumente zu Timer(), whose parameters are defined as:

Timer(interval, function, args=None, kwargs=None) 

Hinweis, dass es keine * s gibt: die args und kwargs Parameter für diesen Konstruktor sind normale Parameter.

Also Ihr drittes Argument muss alle Ihre Positionsargumente sein: delay und action, dann den gesamten Inhalt von args. Eine Möglichkeit, dies zu tun ist, Listen hinzuzufügen zusammen mit +:

[delay, action] + list(args) 

Und Ihre vierte Argument muss die Keyword-Argumente sein, die nur kwargs ist.

dies sollte also funktionieren:

Timer(delay, repeat_task, [delay, action] + list(args), kwargs).start() 
+0

aaah Sie haben Recht, aber es ist nicht diese Linie ist der Fehler spuckt ... es ist dies eine „Aktion (args, kwargs)“ (Ich sollte wahrscheinlich habe geklärt, dass in meiner Frage) der Fehler sagt "TypeError: unorderable Typen: dict()> = int()" –

+0

eer acutally das ist ein neuer Fehler ... Ihr Kommentar tatsächlich behoben. :) jetzt muss ich diesen neuen Fehler herausfinden ... lol –