从函数中访问变量

时间:2016-05-05 16:38:00

标签: python psychopy

我正在显示一些刺激,然后通过按键功能检查按键,但我似乎无法访问该功能中的变量,例如如果用户在按键检查期间按下Q,则应该启动退出,如果用户按下'g',则运行转到'2',这应该退出整个while循环。我已经尝试过使用全局变量,但我仍然无法使其工作,我也意识到全局变量存在风险。

def check_keys():
    allKeys = event.getKeys(keyList = ('g','h','escape'))
    for thisKey in allKeys:
        if thisKey == 'escape':
            dataFile.close()
            window.close()
            core.quit()
        elif thisKey == 'g':
             keyTime=core.getTime()
             thisResp = 1      
        elif thisKey == 'h':
             keyTime=core.getTime()
             thisResp = 0    

thisResp = 2
running = 1
while running == 1:

    for frame in range(frames):
        fix.draw()
        upper_target.draw()
        z= window.flip()
        check_keys()
        if thisResp == 1:
            running = 2:

print running

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

由于thisResp方法之前未定义check_keys(),因此该方法不会更改thisRep的值。为了更改thisResp的值,我会将其作为参数传递给check_keys(),或让check_keys()返回1或0,然后设置{{1}的值什么回来了。使用第二种方法,您的代码如下所示:

thisResp