用于打印当前模块的名称,也可以从另一个模块调用

时间:2013-01-30 05:46:23

标签: python function module

def a():
    print __name__

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

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

1 个答案:

答案 0 :(得分:1)

sys 模块提供了一种特定于CPython的查询调用方式的方法:

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

_getframe()函数记录在 here 中,框架对象记录在 here