我有一个粒子类型对象的粒子列表,它采用两个参数:位置和能量:
class Particle(object):
def __init__(self, pos, energy):
self.x = pos
self.E = energy
到目前为止,我成功做到这一点的唯一方法是使用列表理解创建粒子列表:
number_of_particles = 10
initial_energy = 0
particle_list = [Particle(initial_energy,i) for i in range(number_of_particles)]
现在允许我做这样的事情:
particle_list[0].x
这就是我想要的。
但是,我真正非常喜欢的是做如下事情:
particle_list = ParticleList(no_of_particles, initial_energy)
它创建了完全相同的列表。
我认为我必须以某种方式扩展列表类,但我不知道如何做到这一点。
最佳答案
为什么不直接构建一个函数来为您执行此操作。你可以做一些简单的事情,比如:
def ParticleList(no_of_particles, initial_energy):
return [Particle(initial_energy,i) for i in range(number_of_particles)]
这应该是获取列表的简单方法。
关于python - 扩展列表类以创建对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534491/