使用字符串列表作为实例的变量名动态创建类的实例



假设我想生成一个类的多个实例(例如Car类)。

我有需要在列表中使用的变量名称:

cars = ['Mustang', 'Camaro', 'Challenger']

如何遍历cars列表并创建一个Car类的实例,变量名称是cars列表中的字符串。

本质上与以下操作相同:

Mustang = Car()
Camaro = Car()
Challenger = Car()

意识到动态创建变量是不受欢迎的,但是我使用它为研究中的每个参与者创建一个类的实例,因此我将他们的 ID 号放在一个列表中,并希望使用此 ID 号作为类实例的变量名称。

试试这个希望它有帮助: https://repl.it/OAQv

class Car:
    pass
module_name = __import__('sys').modules[__name__]
setattr(module_name, 'Mustang', Car())
setattr(module_name, 'Camaro', Car())
setattr(module_name, 'Challenger', Car())
print(Mustang)
print(Camaro)
print(Challenger)

使用字符串列表动态创建类的实例

class Car:
    pass
module_name = __import__('sys').modules[__name__]
cars = ['Mustang', 'Camaro', 'Challenger']
for car in cars:
    setattr(module_name, car, Car())
print(Mustang)
print(Camaro)
print(Challenger)

最新更新