首页 > 解决方案 > 有没有比 globals() 更好的方法在 For 循环中创建多类变量?

问题描述

我想看看有没有更好的方法。我对python有点陌生。这是我尝试和使用课程的一种方式。任何帮助或建议都会很好。

class Employee:

    def __init__(self, first, last, pay):
        self.first = first
        self.last = last
        self.pay = pay
        self.email = first + '.' + last + '@company.com'

for Number in range(30):
        globals()[f"E{Number}"] = Employee('First', 'Last', 0)

print(E5.__dict__)

标签: python

解决方案


如果你想要一个实例集合,不要使用单独命名的变量;使用像列表这样的容器

Es = [Employee('First', 'Last', 0) for _ in range(30)]

或字典

Es = {k: Employee('First', 'Last', 0) for k in range(30)}

Es在这两种情况下,您都可以使用int;进行索引。adict在使用何种索引方面为您提供了更大的灵活性。


推荐阅读