【发布时间】:2018-05-07 20:16:48
【问题描述】:
例如,假设我们有一个“代理”类,如下所示:
class Agent:
def __init__(self, number):
self.position = []
self.number = number
for i in range(number):
self.position.append([0, 0])
我可以通过以下方式创建类的实例:
agent = Agent(10)
然后通过以下方式访问第 i 个代理的位置:
agent.position[i]
但是,这似乎不够优雅,对我来说有点违反直觉。相反,我想索引类实例本身。例如:
pos_i = agent[i].position
它应该返回与上面的单行代码相同的答案。有没有办法做到这一点?
【问题讨论】:
-
但是
position是职位历史列表? -
此外,您所说的不正确。您不访问第 i 个代理的位置,而是访问代理的第 i 个位置。
-
那么是否可以创建代理的 i 个实例,或者这是否是多余的?重点是能够通过某些功能改变这些位置。 @WillemVanOnsem
-
但是在这里您将职位列表附加到一个代理。
-
嗯,我的目标是能够更改具有相同属性的类实例的位置。所以我的初始代码足以完成这项任务,对吧? @WillemVanOnsem