Python 3.x 获取要实例化的类类型的字典
我想迭代python中的字典。这些值是类型Python 3.x 获取要实例化的类类型的字典,python-3.x,loops,class,Python 3.x,Loops,Class,我想迭代python中的字典。这些值是类型 class_dict = {'ClassA': ClassA, 'ClassB': ClassB} 在迭代中,我想做如下事情: for key, value in class_dict.items(): instance = value(params) instance.do_method(params) 本质上,每次迭代都会创建在值中定义的类的实例,并运行它的类方法等 我很好奇为什么这真的有效,以及使用它时价值会发生什么变化。它是
class_dict = {'ClassA': ClassA, 'ClassB': ClassB}
在迭代中,我想做如下事情:
for key, value in class_dict.items():
instance = value(params)
instance.do_method(params)
本质上,每次迭代都会创建在值中定义的类的实例,并运行它的类方法等
我很好奇为什么这真的有效,以及使用它时价值会发生什么变化。它是在字典中实例化还是在字典之后实例化?Python类本身就是对象——它们是
类型的实例(或另一个元类)。因此,您可以在变量或数据结构(如字典)中引用类。类也可以调用;“调用”它们通常会创建类的新实例
当字典包含对类的引用时,不会创建该类的实例,因为您没有“调用”该类来创建实例。实例在循环中创建,其中key
是类名(一个字符串),而value
是类本身;表达式value(params)
创建实例,因为它“调用”类。该实例未存储在字典中,因为您没有编写任何代码将其放在字典中