给定一个模块 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
mymodule
是 anothermodule
的替代品,我想让代码更改变得简单,只需将 import anothermodule as thething
替换为 将我的模块作为事物导入
。由于我还没有实现 anothermodule
的所有功能,所以我想向用户发送有关它的通知,而不是因“未定义”而崩溃。
最佳答案
__name__
是由导入机制设置的模块属性,其计算结果为当前模块的名称。将此添加到文件的顶部:
import sys
THISMODULE = sys.modules[__name__]
您已经拥有的其余部分应该可以正常工作。
关于python - 如何从另一个函数创建顶级模块函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63471402/