如何在Python中更改类的模块?

时间:2014-02-24 07:09:31

标签: python module

module1有功能make_class。 module2以这种方式调用它:

Foo = make_class('Foo')

或者这个:

setattr(sys.modules[__name__], 'Foo', make_class('Foo'))

但在任何一种情况下我们都有<class 'module1.Foo'> 如何将此类分配给module2:<class 'module2.Foo'>? (我需要这个来满足SQLAlchemy的要求)

1 个答案:

答案 0 :(得分:3)

Foo.__module__ = __name__

显式更改模块名称。如果您为新类的make_class属性采用模块名称参数,则可以让__module__函数处理此问题。