Python 3 - 使用带有args模块的kwargs

时间:2016-08-02 02:15:38

标签: python-3.x tkinter publish-subscribe pypubsub

我正在tkinter中编写一个gui,并使用发布/订阅模块(pyPubSub)通知程序的不同部分,如果他们订阅了这些内容。所以,我有两个功能,我需要一起工作。来自tkinter,我使用:

after_idle(callback, *args)

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

sendMessage(topic, **kwargs)

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

root.after_idle(pub.sendMessage, ?)

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

1 个答案:

答案 0 :(得分:4)

您可以随时使用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()