猿问

Python 3:为动态类设置命名空间

我正在编写一个 Python (3.6) 程序来从用户提供的 Yaml 文件动态生成类。


使用 的过程看起来非常简单type(),但我无法控制生成的类的模块名称。


一个最小的例子:


>>> x = type('hey.Ho', (), {})

>>> x

__main__.hey.Ho

此外(更接近我的真实代码):


>>> from abc import ABCMeta

>>> class BaseClass(metaclass=ABCMeta):

...    pass


>>> x = type('hey.Ho', (BaseClass,), {})

>>> x

abc.hey.Ho

如何让我的新类命名空间成为 just hey.Ho?


慕的地8271018
浏览 232回答 1
1回答

神不在的星期二

你想设置类的__module__属性:>>> type('Ho', (), {'__module__': 'hey'})<class 'hey.Ho'>
随时随地看视频慕课网APP

相关分类

Python
我要回答