编辑:
我想生成N个代理。每个代理都有一个名称,因此我从名称创建一个随机名称并将其分配给类Agent。
运行模型后,我想获取代理名称列表。
这是来自台面:
Aryan
Kim
Nap
Semi
kim
在互动会话上
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()
我收到了这个错误:
文件“C:\ src__init __。py”,第7行,in atr = list([在MoneyAgent.name中为a]) AttributeError:类型对象'MoneyAgent'没有属性'name'
如何解决?
答案 0 :(得分:3)
以下是我对您的问题的解释:您正在创建一个MoneyModel
对象,其中包含存储在类似集合的对象中的MoneyAgent
个对象的集合,称为{{ 1}},您希望MoneyModel.schedule
集合中每个list
对象的name
MoneyAgent
。
假设MoneyModel.schedule
表现为可迭代对象,则以下内容应该有效:
MoneyModel.schedule