두 함수간에 정보를 전달하는 데 문제가 있습니다. 내 'trial'함수 (아래 코드 참조) 내에서 키 누르기를 확인하고 'g'또는 'h'키를 누르면 while 루프를 빠져 나오기를 기다리고 있습니다. while 루프는 test = 1에 종속적입니다. 'check_keys'함수 내에서 'g'또는 'h'키를 누르 자마자 테스트는 2로 전환됩니다. 그러면 while 루프를 종료 할 것으로 예상됩니다. 키가 눌려 짐에 따라 (인쇄 문으로 인해) 등록되어 있다는 것을 알 수 있지만 while 루프를 종료하지는 않습니다. 'test'가 'check_keys'함수 내에서 2로 전환되었음을 알기 위해 루프를 실행하는 동안 문제가있는 것으로 보입니다. 나는 'test'를 전역 변수로 변경하려고 시도했지만 여전히 같은 문제에 봉착했다. 분명히 정보는 두 기능간에 전달되지 않습니다.Python/Psychopy : 함수간에 정보 전달
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()
짧은; 조건부 '테스트'변수가 변경 되었음에도 불구하고 왜 while 루프에 갇혀 있습니까? 당신이 당신의 check_keys의 세계() 안의 방법으로 시험을 선언하지 않았기 때문에
건배, 스티브