ошибка атрибута в Python / Mesa: у объекта «MyAgent» нет атрибута «name» - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь завершить учебное пособие по 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'

Я просмотрел несколько публикаций, посвященных ошибкам атрибутов, и ни одна из них, похоже, не применима ни к чему, что здесь происходит.предложения?

Спасибо!

...