module1有功能make_class。 module2以这种方式调用它:
Foo = make_class('Foo')
或者这个:
setattr(sys.modules[__name__], 'Foo', make_class('Foo'))
但在任何一种情况下我们都有<class 'module1.Foo'>
如何将此类分配给module2:<class 'module2.Foo'>
? (我需要这个来满足SQLAlchemy的要求)
答案 0 :(得分:3)
Foo.__module__ = __name__
显式更改模块名称。如果您为新类的make_class
属性采用模块名称参数,则可以让__module__
函数处理此问题。