Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 一个函数,它知道它所来自的包的名称';有人叫他_Python_Python 2.7 - Fatal编程技术网

Python 一个函数,它知道它所来自的包的名称';有人叫他

Python 一个函数,它知道它所来自的包的名称';有人叫他,python,python-2.7,Python,Python 2.7,我有两个包裹: myu工具,一系列工具,包括函数f() my_项目,它将my_工具作为依赖项,并使用其f()函数 我的问题是,当我从My_projectpackage的代码调用f()时,我需要f()才能找到它是从My_project包调用的(例如返回包的名称) 例如: # my_project/code.py from my_tools import f print f() # prints 'my_project' 我一直在玩弄sys和inspect,但到目前为止找不到任何解决方案。用

我有两个包裹:

  • myu工具
    ,一系列工具,包括函数
    f()
  • my_项目
    ,它将
    my_工具
    作为依赖项,并使用其
    f()
    函数
我的问题是,当我从
My_project
package的代码调用
f()
时,我需要
f()
才能找到它是从
My_project
包调用的(例如返回包的名称)

例如:

# my_project/code.py
from my_tools import f
print f()  # prints 'my_project'
我一直在玩弄
sys
inspect
,但到目前为止找不到任何解决方案。

用于获取帧信息,然后检查模块的
\uuuuuuuuuuuuuuuuuuuuu
属性:

import inspect

def f():
    frame = inspect.currentframe()
    return frame.f_back.f_globals.get('__package__')

def()我有我的项目
。检查或查看我认为这段asciinema代码片段有不同之处:
my_tools.py
不是作为
my_项目的依赖项安装的
my_tools
python包的一部分。我想这是我没有得到同样结果的部分原因。。。