python - 如何从另一个函数创建顶级模块函数?

标签 python

给定一个模块 mymodule 和一个 __init__.py 文件,我如何从该文件中的另一个函数定义 mymodule 的函数?

__init__.py 代码大纲:

def a():
    THISMODULE.__dict__["b"] = lambda: print("this is not weird")

a()
b() # Expect "this is not weird" output

mymoduleanothermodule 的替代品,我想让代码更改变得简单,只需将 import anothermodule as thething 替换为 将我的模块作为事物导入。由于我还没有实现 anothermodule 的所有功能,所以我想向用户发送有关它的通知,而不是因“未定义”而崩溃。

最佳答案

__name__是由导入机制设置的模块属性,其计算结果为当前模块的名称。将此添加到文件的顶部:

import sys

THISMODULE = sys.modules[__name__]

您已经拥有的其余部分应该可以正常工作。

关于python - 如何从另一个函数创建顶级模块函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63471402/

相关文章:

python - Spark pandas_udf 并不更快

python - Django 表单集 - 空 kwargs

python - Curl 到 Python 的转换

python - Cython 中的高效算术特殊方法

python - IO错误 : [Errno 2] No such file or directory writing in a file in home directory

python - 扩展 setuptools 扩展以在 setup.py 中使用 CMake?

python - (pynput) 捕获键阻止将它们发送到其他应用程序

python - 如何计算一个值在数组中出现了多少次

基于 python 的 Dockerfile 抛出 locale.Error : unsupported locale setting

python - XGBoost 预测输出不是二进制的?