如何在Python中获取函数的名称(以及它所在的模块)?

3
尝试获取Python函数的完整名称。有关函数名称的此问题指定应使用__name__字段获取函数名称。然而,对于这个特定情况,需要完整名称:包含它的模块以及函数的名称。
目的是在同一项目中的不同程序中访问函数。
例如:
# file /my/project/funcs.py
def fun_1(a):
    ...

# Looking for a function like this:

def get_fun_name(function):
    ...

>>> get_fun_name(fun_1)
my.project.funcs.fun_1

如您所见,理想的答案应该打印出提供为参数的函数对象的模块和函数。

非常感谢!任何帮助都将不胜感激!

2个回答

4

请记住,这对于作为类一部分的方法是不起作用的。 - Miguel Guthridge

3
如果你想获取名称和模块,它们可以作为__name____module__属性来获取。请注意,对于在另一个函数或类中定义的函数,这仍将给您提供不准确的“路径”。 Python 3.3添加了__qualname__属性,其中包含该信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接