我正在研究一个Python项目,我想做下一个例子,但是不正确。我需要一些帮助!
names = ['name1', 'name2']
for name in names:
class name:
[statements]
谢谢!
答案 0 :(得分:4)
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
用于存储class
个对象,因为将动态名称直接注入全局命名空间是一个坏主意。
以下是使用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