Ich habe Probleme, Informationen zwischen zwei Funktionen zu übergeben. Innerhalb meiner "Test" -Funktion (siehe Code unten) überprüfe ich auf Tastendrücke und erwarte, dass ich aus der while-Schleife ausstiege, wenn eine 'g' oder 'h' Taste gedrückt wird. Die while-Schleife ist abhängig von test = 1. Sobald innerhalb der Funktion 'check_keys' die Taste 'g' oder 'h' gedrückt wird, wechselt der Test zu 2; Ich würde dann erwarten, die While-Schleife zu verlassen. So wie es aussieht, während ich Tasten drücke, kann ich sehen, dass sie registriert sind (aufgrund der print-Anweisungen), aber es beendet die while-Schleife nicht. Es scheint ein Problem zu sein, meine Haupt-While-Schleife zu bekommen, um zu sehen, dass 'Test' innerhalb meiner 'check_keys'-Funktion auf 2 geschaltet hat. Ich habe versucht, "Test" zu einer globalen Variable zu ändern, aber ich bin immer noch mit dem gleichen Problem fest. Offensichtlich wird keine Information zwischen beiden Funktionen ausgetauscht.Python/Psychopy: Weitergabe von Informationen zwischen Funktionen
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()
Kurz gesagt; warum stecke ich in der while-schleife fest, obwohl sich meine bedingte test-variable geändert hat?
Cheers, Steve