如何在python中使用循环创建多个类对象?

2024-10-05 08:15:47 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您必须在python中创建10个类对象,并对它们执行一些操作,例如:

obj_1 = MyClass()
other_object.add(obj_1)
obj_2 = MyClass()
other_object.add(obj_2)
.
.
.
obj_10 = MyClass()
other_object.add(obj_10)

如何通过循环来实现,并为每个对象(比如obj_1)分配一个变量,从而使代码更短?每个对象都应该可以在循环外部访问

obj_1.do_sth()

Tags: 对象代码addobjobjectmyclassdoother
3条回答

这个问题每天都有不同的答案。答案是:让数据远离变量名,然后this is the obligatory blog post

在这种情况下,为什么不列一个obj列表呢?

objs = [MyClass() for i in range(10)]
for obj in objs:
    other_object.add(obj)

objs[0].do_sth()

如前所述创建字典,但在本例中,每个键都有要创建的对象名的名称。然后将该值设置为要实例化的类,请参见示例:

class MyClass:
   def __init__(self, name):
       self.name = name
       self.checkme = 'awesome {}'.format(self.name)
...

instanceNames = ['red', 'green', 'blue']

# Here you use the dictionary
holder = {name: MyClass(name=name) for name in instanceNames}

然后您只需调用holder键,就可以获得类的所有属性和方法。

holder['red'].checkme

输出:

'awesome red'

您可以使用list来定义它。

objs = list()
for i in range(10):
    objs.append(MyClass())

相关问题 更多 >

    热门问题