我正在使用一个ORM,它接受类作为输入,并且我需要能够提供一些动态生成的类。目前,我正在执行以下类似的虚构示例:
def make_cls(_param):
def Cls(object):
param = _param
return Cls
A, B = map(make_cls, ['A', 'B'])
print A().foo
print B().foo
虽然这种方法可以正常工作,但感觉有些不对:例如,在repl上,两个类都被打印为<class '__main__.Cls'>
。虽然名称的问题不是很大(我认为我可以通过设置__name__
来解决它),但我想知道是否还有其他我不知道的问题。
所以我的问题是:是否有更好的动态创建类的方法,或者我的示例已经基本上很好了?