我想定义一个参数变量通过默认的属性id_在玩家的组。然而,这个属性似乎无法通过我所能想到的方式(例如via)访问BasePlayer.id_在_组中). 在
班级玩家代码:
class Player(BasePlayer):
investment_amount = models.CurrencyField(
doc="""
Amount invested by this player.
""",
min=0, max=Constants.endowment
)
random_number = BasePlayer.id_in_group
def set_payoffs(self):
for p in self.get_players():
p.payoff = 110
我如何访问_group中的属性id_?还是因为它是oTree预设的默认属性而不可能?在
在oTree中,
id_in_group
属性是在会话启动后分配的。这是非常合乎逻辑的,因为在会话开始之前,组还没有形成。在您试图在Player类声明中分配一个值,当没有一个玩家被分配到组时,因此没有人拥有他/她的
id_in_group
。在此外,您可以将值赋给模型的属性,而不是指定给特定实例(即播放器)的字段。如果您需要为每个玩家的
random_id
字段分配一个基于组中他/她的id的特定值,请执行以下操作:在模型.py:
您是否尝试过通过
super.id_in_group
或self.id_in_group
访问变量?如果它是父类的变量,就不会像现在这样直接调用该类。在另外,Google有很多关于如何访问父类变量的结果,其中很多都是stackoverflow的答案,可以很好地解释问题:-)
相关问题 更多 >
编程相关推荐