Отредактировано:Python- как получить список самопеременных в классе состоит из N-self
Я хочу сгенерировать N-количество агентов. У каждого агента будет имя, поэтому я создаю случайное имя из имен и назначу его агенту класса.
После запуска модели я хочу получить список имен моих агентов.
Это из Меса:
import names
from mesa import Agent, Model
from mesa.time import RandomActivation
class Agent(Agent):
def __init__(self, name):
self.name= names.get_full_name()
self.wealth = 1
def step(self):
pass
class Model(Model):
def __init__(self, N):
self.num_agents = N
self.schedule = RandomActivation(self)
for i in range(N):
a = MoneyAgent(i)
self.schedule.add(a)
def step(self):
self.schedule.step()
на интерактивной сессии
gow = MoneyModel(10)
gow.step()
atr = list([a for a in MoneyAgent.name])
print(atr)
Я получил эту ошибку:
Файл "C:. \ Src__init __ ру", строка 7, в atr = list ([a для a в MoneyAgent.name]) AttributeError: тип объекта 'MoneyAgent' не имеет атрибута 'name'
Как это исправить?
ваша первая строка в '__init__' метод имеет синтаксическую ошибку. Вы вызываете 'names.get_full_name()'. Однако переменная, которую вы передаете методу, является _name_, а не _names_ – Jalo
Когда я использую _names_, я получу эту ошибку: объект _'int 'не имеет атрибута' get_full_name'_ – dya
, он импортирует 'names' выше. –