我是编码新手,希望能帮助理解PsychoPy程序使用的脚本。
更具体地说,我想了解第6行到第15行的代码。我知道这用于管理多个试验,但我希望有人可以帮我澄清这些内容吗?我还注意到,从第6-8行删除代码并不能改变实验,但是从第10-15行删除代码基本上会阻止实验运行。
trialsAll = data.TrialHandler(trialList=data.importConditions('trialType.xlsx'), nReps=10, method='random', name='trialsAll', dataTypes='corr')
thisExp = data.ExperimentHandler(name='Ours')
thisExp.addLoop(trialsAll) #adds a loop to the experiment
thisTrial = trialsAll.trialList[0]
if thisTrial != None:
for paramName in thisTrial.keys():
exec(paramName + '= thisTrial.' + paramName)
# Loop through trials
for thisTrial in trialsAll:
currentLoop=trialsAll
if thisTrial != None:
for paramName in thisTrial.keys():
exec(paramName + '=thisTrial.' + paramName)
我的第二个问题是获得回复。是否有理由将此Resp等于None?
#get response
thisResp=None
while thisResp==None:
allKeys=event.waitKeys()
非常感谢您的帮助。我很感激。
此致 现金
答案 0 :(得分:1)
if thisTrial != None:
for paramName in thisTrial.keys():
exec(paramName + '= thisTrial.' + paramName)
此代码允许使用缩写。例如,假设您的条件文件有一个名为' angle'的字段,您可以直接参考此而不是通过该试用词典的键(例如thisTrial [' angle&#39] ;])或使用点表示法(thisTrial.angle)。即,在这个例子中:
angle = thisTrial.angle
for thisTrial in trialsAll:
是运行psychoPy试验循环的基础。它将循环通过TrialHandler对象中包含的每个试验,该对象是为管理连接到给定条件文件的试验而创建的。
#get response
thisResp=None
while thisResp==None:
allKeys=event.waitKeys()
该行'而thisResp ==无:'要求变量' thisResp'如果我们能够检查它的价值,实际上是存在的。因此,在前一行中,它被创建并给出一个初始空值,以便下一行将运行OK。请注意,在此阶段,它只是一个任意变量,与主题的响应没有任何实际联系。这可能会在代码中稍后发生,当它被赋予除None之外的值时。