在循环Python中创建类

在循环Python中创建类,python,class,loops,Python,Class,Loops,我正在从事一个Python项目,我想做一些类似于下一个示例的事情,但这是不正确的。我需要一些帮助,求你了 names = ['name1', 'name2'] for name in names: class name: [statements] 谢谢大家! class语句需要硬编码的类名。但是,您可以使用type函数来创建这样的动态类 names = ['name1', 'name2'] class_dict = {} for name in names:

我正在从事一个Python项目,我想做一些类似于下一个示例的事情,但这是不正确的。我需要一些帮助,求你了

names = ['name1', 'name2']

for name in names:
    class name:
        [statements]
谢谢大家!

class语句需要硬编码的类名。但是,您可以使用type函数来创建这样的动态类

names = ['name1', 'name2']
class_dict = {}
for name in names:
    # statements to prepare d
    class_dict[name] = type(name, (object,), d)
在这里,d是一个字典,它应该包含在类中定义的任何属性和方法。class_dict用于存储类对象,因为将动态名称直接注入全局命名空间是个坏主意

下面是一个使用type函数创建类的具体示例

d = {}
d['foo'] = 5
def initializer(self, x):
    self.x = x + 6
d['__init__'] = initializer
MyClass = type('MyClass', (object,), d)
这将生成与下面的class语句相同的类

class MyClass(object):
    foo = 5
    def __init__(self, x):
        self.x = x + 6

解释您试图实现的目标,以及这是以什么方式不正确的。相关:当类型创建的对象不是classobj时,我们可以用替换对象。但是,是的,显性比隐性好-啊,是的,我看到一个类型实例从object继承,不管您是否在基类元组中包含object。