Python 3 -- 将 kwargs 与仅 args 模块一起使用

Python 3 -- using kwargs with an args only module

我正在 tkinter 中编写一个图形用户界面,并使用 publish/subscribe 模块 (pyPubSub) 来通知程序的不同部分如果他们订阅了会发生什么。所以,我有两个功能需要协同工作。来自 tkinter,我正在使用:

after_idle(callback, *args)

在主循环中调用消息发送。如您所见,它只接受 *args 作为要发送到回调的参数。我发送的回调来自 pyPubSub:

sendMessage(topic, **kwargs)

所以,我最终得到了这个:

root.after_idle(pub.sendMessage, ?)

我的问题是,如何让 args 与 kwargs 一起工作?我必须使用位置参数调用 after_idle 以通过回调发送,但回调只需要关键字参数。

您可以随时使用 lambda,这是一个什么都不做的简短示例。

import tkinter as tk

def test(arg1, arg2):
    print(arg1, arg2)

root = tk.Tk()
root.after_idle(lambda: test(arg1=1, arg2=2))
root.mainloop()