我正在使用接受类作为输入的ORM,我需要能够为它提供一些动态生成的类。目前,我做这样的人为的例子:在运行时创建Python类的最坏方法是什么?
def make_cls(_param):
def Cls(object):
param = _param
return Cls
A, B = map(make_cls, ['A', 'B'])
print A().foo
print B().foo
虽然这工作得很好,它的有点感觉关:例如,两个类打印为<class '__main__.Cls'>
在REPL。虽然名称问题不是什么大问题(我想我可以通过设置__name__
来解决它),但我不知道是否还有其他事情我不知道。 所以我的问题是:是否有更好的方式来动态创建类,或者我的例子大多已经罚款了吗?
http://stackoverflow.com/questions/4513192/python-dynamic-class-names – Cez 2012-02-10 20:56:25
可能的副本如下面的罗马笔记,您将希望使用'type'来动态创建类。 [这个问题]的最佳答案(http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python)非常详细地介绍了这一点。 – aganders3 2012-02-10 20:57:46
“一个ORM”?哪个ORM? ORM为你做了很多这样的事情。 – 2012-02-10 21:24:07