首页 > 解决方案 > Python/Mesa 中的属性错误:“MyAgent”对象没有属性“名称”

问题描述

我正在尝试完成 Mesa 教程(https://media.readthedocs.org/pdf/mesa/latest/mesa.pdf)并且遇到重复的属性错误。

我刚刚尝试了这段代码(与教程中打印的完全一样):

import random
from mesa import Agent, Model
from mesa.time import RandomActivation
from mesa.space import MultiGrid

class MyAgent(Agent):
    def __init__(self, name, model):
        super().__init__(name, model)
    def step(self):
        print("{} activated".format(self.name))

class MyModel(Model):
    def __init__(self, n_agents):
        self.schedule = RandomActivation(self)
        self.grid = MultiGrid(10, 10, torus=True)
        for i in range(n_agents):
            a = MyAgent(i, self)
            self.schedule.add(a)
            coords = (random.randrange(0, 10), random.randrange(0, 10))
            self.grid.place_agent(a, coords)
    def step(self):
        self.schedule.step()

我像这样运行它:

model = MyModel(5)
model.step()

并最终得到以下错误: Traceback(最近一次通话):

文件“”,第 2 行,在 model.step()

文件“”,第 11 行,步骤 self.schedule.step()

文件“/anaconda3/lib/python3.6/site-packages/mesa/time.py”,第 113 行,步骤 agent.step()

文件“”,第 5 行,步骤 print("{} 已激活".format(self.name))

AttributeError:“MyAgent”对象没有属性“名称”

我查看了许多处理属性错误的帖子,但似乎没有一个适用于这里发生的任何事情。有什么建议么?

谢谢!

标签: pythonpython-3.xmesa

解决方案


推荐阅读