python - 打印当前模块名称的函数,当从另一个模块调用时也是如此

标签 python function module

def a():
    print __name__

我有没有可能拥有这样的功能,但如果被另一个模块导入并从那里调用,它会打印“正确”的模块名称?

“正确的”模块名称应该始终是调用它的名称。

最佳答案

sys 模块提供了一种特定于 CPython 的方式来查找调用者:

sys._getframe(1).f_globals.get('__name__', '__main__')

记录了_getframe() 函数 here ,并且框架对象被记录 here .

关于python - 打印当前模块名称的函数,当从另一个模块调用时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14597499/

相关文章:

python - 在selenium.py中,如何处理404状态码

python - 按行计算匹配某些规则的两个字符之间的大文件中的总字节数

python - 基于平台分割数据(来自文本/json文件)(使用Python)

python - 从 0/1 网格返回值

c - 在 init_timer() 之前调用 timer_pending() 是否安全?

python - 如何获取与正则表达式匹配的片段的行号?

python - 制作一个以任意大小的列表作为参数的函数 Python 3

Python:检查字符的大写

javascript - Node - 工厂或构造函数,还是两者都不?

javascript - 导出对象中的对象