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



我正在tkinter中编写一个gui,并使用发布/订阅模块(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()

最新更新