Я пытаюсь завершить учебное пособие по 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' нет атрибута 'name'
Я просмотрел несколько публикаций, посвященных ошибкам атрибутов, и ни одна из них, похоже, не применима ни к чему, что здесь происходит.предложения?
Спасибо!