2024-10-05 08:15:47 发布
网友
假设您必须在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
obj_1.do_sth()
这个问题每天都有不同的答案。答案是:让数据远离变量名,然后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())
这个问题每天都有不同的答案。答案是:让数据远离变量名,然后this is the obligatory blog post。
在这种情况下,为什么不列一个obj列表呢?
如前所述创建字典,但在本例中,每个键都有要创建的对象名的名称。然后将该值设置为要实例化的类,请参见示例:
然后您只需调用holder键,就可以获得类的所有属性和方法。
输出:
您可以使用list来定义它。
相关问题 更多 >
编程相关推荐