Python- 如何获取 class 中的自变量列表,由 N-self 组成

Python- how to get list of self variables in a class consist of N-self

已编辑:

我想生成 N 个代理。每个代理都有一个名字,所以我从名称中创建一个随机名称并将其分配给 class 代理。

在我 运行 模型之后,我想获取我的代理名称列表。

这是来自台面:

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__.py",第 7 行,在 atr = list([a for a in MoneyAgent.name]) AttributeError: 类型对象 'MoneyAgent' 没有属性 'name'

如何解决?

这是我对您的问题的解释:您正在创建一个 MoneyModel 对象,其中包含 MoneyAgent 个对象的集合,这些对象存储在称为 MoneyModel.schedule 的类集合对象中,并且您想要 MoneyModel.schedule 集合中每个 MoneyAgent 对象的 namelist

假设 MoneyModel.schedule 表现为一个可迭代对象,以下应该有效:

atr = [agent.name for agent in gow.schedule]