我在两个函数之间传递信息时遇到了一些问题。在我的“试用”功能(见下面的代码)中,我正在检查是否有按键,如果按下了“g”或“h”键,我希望退出while循环。while循环依赖于test=1。在我的“check\u keys”功能中,只要按下“g”或“h”键,test就会切换到2;然后我就会期望退出while循环。就目前情况而言,当我按下键时,我可以看到它们正在被注册(由于print语句),但它并没有退出while循环。让我的主while循环看到“test”从“check\u keys”函数中切换到2似乎有问题。我曾尝试将“test”更改为全局变量,但仍然遇到同样的问题。显然,这两个函数之间没有传递信息。你知道吗
window = visual.Window([600,600],fullscr=False,color=("black"), allowGUI=True, monitor='testMonitor', units='deg')
global test
def check_keys():
allKeys = event.getKeys(keyList = ('g','h','escape'))
for thisKey in allKeys:
if thisKey == 'g':
print "g"
test = 2
elif thisKey == 'h':
print "h"
test = 2
def trial():
global test
test = 1
while test ==1:
check_keys()
for i in range(1):
trial()
简言之,尽管我的条件“test”变量发生了变化,但为什么我仍停留在while循环中?你知道吗
干杯, 史蒂夫
因为没有在check\u keys()方法中将test声明为全局,所以您被卡住了。也就是说,您应该做的是让check\键返回test的值,然后在main中跟踪它:
相关问题 更多 >
编程相关推荐