调用事件处理函数Python3

发布时间:2020-07-06 15:36

我需要调用事件处理程序函数来检索存储在其中的变量。

这是我的代码的一部分:

def handler(event):
    current = combobox.current()
    if current !=1:
        for label in labels.values():
            label.config(relief='flat')
        value = res[current]
        print('\n',value)
        label = labels[value]
        label.config(relief='raised')
        
        handler_type=protocols[value].type
        handler_adress=protocols[value].adress
#        print(handler_type)
#        print(handler_adress)
        return (handler_adress, handler_type)

even_fun=handler()
print(even_fun.handler_adress)
print(even_fun.handler_type)

在这种情况下,我会收到此错误:

    even_fun=handler()

TypeError: handler() missing 1 required positional argument: 'event'

如果我添加参数事件:even_fun=handler(event),则会出现此错误:

    even_fun=handler(event)

NameError: name 'event' is not defined
回答1

如果不需要,可以设置该值的默认参数(我认为您正在tkinter中使用命令):

def handler(event=None):