Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
def a(): print __name__
我有没有机会拥有这样的功能,但是如果由另一个模块导入并从那里调用,它会打印“正确”的模块名称吗?
“正确”的模块名称应始终是调用它的名称。
sys模块提供了一种特定于 CPython的方式来查找调用者:
sys._getframe(1).f_globals.get('__name__', '__main__')
_getframe() 函数在此处记录,框架对象在此处记录。