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

时间:2017-11-09 04:25:57

标签: python class

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

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

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

如何循环遍历cars列表并创建Car类的实例,其变量名称为cars列表中的字符串。

基本上与:

相同
Mustang = Car()
Camaro = Car()
Challenger = Car()

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

1 个答案:

答案 0 :(得分:1)

试试这个希望它会有所帮助: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)