标签: python function module
def a(): print __name__
我是否有可能拥有这样的功能,但如果由另一个模块导入并从那里调用,它是否打印出“正确”的模块名称?
“正确”模块名称应始终是从中调用的名称。
答案 0 :(得分:1)
sys 模块提供了一种特定于CPython的查询调用方式的方法:
sys._getframe(1).f_globals.get('__name__', '__main__')
_getframe()函数记录在 here 中,框架对象记录在 here 。