如何设置动态创建的类的模块名称?

哈康海格兰

我正在使用 Python 3 创建一个动态类:

def setup(namespace):
    namespace['a'] = 1

A = types.new_class('A', bases=(), kwds=None, exec_body=setup)

class B:
    b = 2

print(A)
print(B)

输出

<class 'types.A'>
<class '__main__.B'>

我想将类A也放在__main__模块/范围(而不是types模块/范围)中。那怎么办呢?

马丁·彼得斯

只需在__module__事后设置属性:

A.__module__ == '__main__'

您可以在exec_body可调用文件中执行此操作

def setup(namespace):
    namespace['a'] = 1
    namespace['__module__'] = '__main__'

演示:

>>> import types
>>> def setup(namespace):
...     namespace['a'] = 1
...
>>> A = types.new_class('A', bases=(), kwds=None, exec_body=setup)
>>> A.__module__ = '__main__'
>>> A
<class '__main__.A'>

exec_body()可调用:

>>> def setup(namespace):
...     namespace['a'] = 1
...     namespace['__module__'] = '__main__'
...
>>> A = types.new_class('A', bases=(), kwds=None, exec_body=setup)
>>> A
<class '__main__.A'>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP:如何从导入的名称空间动态创建类?

来自分类Dev

如何动态创建类

来自分类Dev

在ruby中,如何将类变量传递到混合模块动态创建的类方法中?

来自分类Dev

如何创建动态词典名称

来自分类Dev

如何动态设置类名?

来自分类Dev

从导入的模块中按名称动态导入类:

来自分类Dev

python如何使用名称在同一文件中动态创建类

来自分类Dev

如何使动态对象名称分配给类?/如何使用对象名称不同的Tkinter创建多个窗口

来自分类Dev

如何按名称动态访问类字段

来自分类Dev

如何动态设置system.timer的名称

来自分类Dev

如何动态设置system.timer的名称

来自分类Dev

如何遍历变量并动态设置其名称?

来自分类Dev

动态填充的模块名称

来自分类Dev

如何获取动态创建的方法的名称

来自分类Dev

如何动态创建参数名称

来自分类Dev

如何使用动态属性名称创建对象

来自分类Dev

如何按名称动态创建图标?

来自分类Dev

如何为 textField 动态创建名称 [SWIFT]?

来自分类Dev

给定模块名称atom,如何为该模块创建结构?

来自分类Dev

Javascript根据类名称中的数字动态设置宽度

来自分类Dev

如何从json数据设置动态类名?

来自分类Dev

如何设置使用jquery live()动态生成的动态输入名称

来自分类Dev

Python:如何创建类值的动态列表

来自分类Dev

如何动态创建新的python类文件?

来自分类Dev

如何使用AngularJS动态创建CSS类

来自分类Dev

如何在TypeScript中创建动态类?

来自分类Dev

如何 .addClass 复制或动态创建相同的类

来自分类Dev

如何设置动态创建的输入字段的 id?

来自分类Dev

如何在C#中将类对象序列化为JSON字符串时动态设置密钥名称

Related 相关文章

热门标签

归档