用于创建多个实例的Python代码

时间:2015-01-19 17:58:12

标签: python class oop

有没有办法在python中创建一个类的多个实例而不必为每个实例输入名称?类似的东西。

for i in range(10):
    i = some_class()

这可能吗?或者我只是一个巨大的菜鸟。

2 个答案:

答案 0 :(得分:2)

是。您只需要一个列表来存储您的对象。

my_objects = []
for i in range(10):
    my_objects.append(some_class())

答案 1 :(得分:2)

使用字典:

d= {}

for i in range(10):
    d[i] = SomeClass()

如果您只想存储实例列表,请使用列表推导:

instances = [SomeClass() for _ in range(10)]

清单:

In [34]: class SomeClass():
        pass
   ....: 

In [35]: instances = [SomeClass() for _ in range(5)]

In [36]: instances
Out[36]: Out[41]: 
[<__main__.SomeClass at 0x7f559dcea0f0>,
 <__main__.SomeClass at 0x7f559dcea2e8>,
 <__main__.SomeClass at 0x7f559dcea1d0>,
 <__main__.SomeClass at 0x7f559dcea208>,
 <__main__.SomeClass at 0x7f559dcea080>])]

一个字典,其中每个i是键,一个实例是值:

In [42]: d= {}

In [43]: for i in range(5):
   ....:         d[i] = SomeClass()
   ....:     

In [44]: d
Out[44]: 
{0: <__main__.SomeClass at 0x7f559d7618d0>,
 1: <__main__.SomeClass at 0x7f559d7617f0>,
 2: <__main__.SomeClass at 0x7f559d761eb8>,
 3: <__main__.SomeClass at 0x7f559d761e48>,
 4: <__main__.SomeClass at 0x7f559d7619e8>}