に渡すときに問題が発生しました。* argsと** kwargsをthreading.Timer()と関数に渡すのに問題があります。私が問題を抱えているコードはありますか?何らかの理由で* argsと** kwargsをthreading.Timer()と関数
誰かが正しい方向に私を指すことができるなら、私は非常に感謝します。 :)
に渡すときに問題が発生しました。* argsと** kwargsをthreading.Timer()と関数に渡すのに問題があります。私が問題を抱えているコードはありますか?何らかの理由で* argsと** kwargsをthreading.Timer()と関数
誰かが正しい方向に私を指すことができるなら、私は非常に感謝します。 :)
[*args]
と{**kwargs}
の両方の構文が無効です。 kwargs
は既にdict
です。したがって、辞書として使用する場合は、直接使用してください。 args
はtuple
なので、その値をタプルとして使用する場合は直接使用し、何らかの理由でlist
に変換する場合はlist(args)
を使用できます。
あなたは、Timer()
にwhose parameters are defined asをこれらの引数を渡している。そこには*
Sが存在しないこと
Timer(interval, function, args=None, kwargs=None)
注意:このコンストラクタのargs
とkwargs
パラメータは通常パラメータです。
したがって、3つ目の引数はすべて位置固定引数である必要があります。delay
とaction
の場合、すべての内容はargs
です。
[delay, action] + list(args)
そして、あなたの四番目の引数は、ちょうどkwargs
である、キーワード引数にする必要がある。これを行う1つの方法は、+
と一緒にリストを追加することです。
Timer(delay, repeat_task, [delay, action] + list(args), kwargs).start()
がAAAHあなたが、しかし、それはエラーを吐き、その行の右ではありませんされている...それはこの1つ「アクション(引数、kwargsから)」である(私はおそらくべき私の質問では、エラーが「TypeError:unorderable types:dict()> = int()」と表示されていることがわかりました。 –
これは新しいエラーです。 :)今私はこの新しいエラーを理解する必要があります...笑 –