【发布时间】:2017-05-18 21:42:28
【问题描述】:
考虑一个有 3 个回合的游戏。在每一轮中,玩家都会做出选择(存储在变量 choice 中)。
现在,在第 3 轮中,我想致电 someFunction,从而访问在第 2 轮中做出的选择。
不幸的是,someFunction 返回None。我不懂为什么。如果我将函数调用放在模板文件中,一切正常。
希望得到帮助 - 我已经找了好几个小时了。
class Subsession(BaseSubsession):
def before_session_starts(self):
if self.round_number == 3:
for player in self.get_players():
player.participant.vars['someKey'] = player.someFunction()
class Player(BasePlayer):
choice = models.CharField(initial=None,
choices=['A','B','C'],
widget=widgets.RadioSelect())
def someFunction(self):
return self.in_round(2).choice
为什么会这样?
【问题讨论】:
-
实际错误是什么?
-
player.participant.vars['someKey'] 是 None 而不是 A、B、C(前一轮的选择变量)。
-
但是没有解释这个变量是在哪里定义的以及它是如何被填充的。我们看到的只是
Player.choice。 -
希望现在更好