【发布时间】:2013-02-23 06:35:12
【问题描述】:
我对 Python 很陌生,我需要声明自己的数据结构,不过我对如何做到这一点有点困惑。我目前有:
class Particle:
def __init__(self, mass, position, velocity, force):
self.mass = mass
self.position, self.velocity, self.force = position, velocity, force
def __getitem__(self, mass):
return self.mass
def __getitem__(self, position):
return self.position
def __getitem__(self, velocity):
return self.velocity
def __getitem__(self, force):
return self.force
但是,当我尝试使用以下方法定义类的实例时,这不起作用:
p1 = Particle(mass, position, velocity, force)
每个值都以 (0.0, 0.0) 结束(这是速度和力的值)。
谁能解释我哪里出错了,我需要从数据结构中提取数据,仅此而已。 (编辑:实际上,抱歉,我稍后将不得不更改它们)
谢谢
【问题讨论】:
-
这对我有用。
-
您所有的
__getitem__定义都是相同的方法。您需要检查实际检索的是哪个项目。 -
@askewchan 不应该。
-
另外:基于尺寸一致性,我会存储加速度而不是力。
-
如何尝试访问?按照您定义它的方式,
p1[<anything>]返回self.force。我很好奇您如何想象访问不同的属性...
标签: python object properties attributes