Python 不需要字典时出现键错误

Python 不需要字典时出现键错误,python,dictionary,Python,Dictionary,我有一个功能,可以设置相机上的快门,并将浮标作为输入: def changeShutter(value): global camera, shutter shutter['abs_value']+=value try: camera.set_property(**shutter) except: print "could not set shutter" 其中,shutter是一个包含快门所需所有属性的字典,abs\u value

我有一个功能,可以设置相机上的快门,并将浮标作为输入:

def changeShutter(value):
    global camera, shutter
    shutter['abs_value']+=value
    try:
        camera.set_property(**shutter)
    except:
        print "could not set shutter"
其中,
shutter
是一个包含快门所需所有属性的字典,
abs\u value
是需要更改其值然后设置的键

我可以很容易地在jupyter笔记本中调用它,我使用它来开发
changeShutter(0.05)
,它工作得很好

然后,我在网页上创建了一个简单的html按钮,该按钮将消息发送到包含changeShutter功能的flask socket服务器,并根据按下的按钮和因此发送的消息,解析0.05或-0.05,如下所示:

@socketio.on('shutter request', namespace='/test')
def changeShutter(message):
    request = message['data']
    print 'Shutter request received: %s' %request
    if str(request) == "shutter increase":
        changeShutter(0.05)
    elif str(request) == "shutter decrease":
        changeShutter(-0.05)
我清楚地收到了两个可能选项中的一个,并正确地输入了正确的
if
语句(我已尝试使用额外的打印语句进行调试),但出于某种原因,它向我抛出了一个
关键错误:0.05


当函数不需要字典输入时,为什么会出现键错误?

如上所述,这是一个愚蠢的错误,因为我有两个同名的不同函数。

为什么您的flask函数命名为
changeShutter
changeShutter(0.05)
最终将调用
changeShutter(message)
,因此keyerror.Perfect。只是注意到了,并试图提交答案,结果发现你也找到了。谢谢你!使用名称空间。不要使用globals。你的编码风格就是问题所在。当你用完全相同的名字定义两个函数时,你期望会发生什么?是的,这就是在两个不同的编辑器中用小片段编写代码的问题——我只是愚蠢地没有意识到我给了它们相同的名字。