确定在python中定义函数的文件

时间:2018-05-31 08:36:29

标签: python function introspection

我正在以编程方式在python中打印出一个函数列表。 我可以从名称

获取名称
for ifunc,func in enumerate(list_of_functions):
    print(str(ifunc)+func.__name__)

如何获取定义函数的源文件名?

如果函数是对象的属性,如何获取父对象的类型?

可移植性python2 / 3是必须的

5 个答案:

答案 0 :(得分:1)

如此处所述https://docs.python.org/3/library/inspect.html func.__globals__返回定义函数的全局命名空间。

答案 1 :(得分:1)

func.__module__

将以定义的方式返回模块

func.__globals__['__file__']

将返回定义它的文件的整个路径。仅用于用户定义的函数

答案 2 :(得分:1)

如何获取定义函数的源文件名...?

import inspect
inspect.getfile(func)

如果函数是对象的属性,那么如何获取父对象的类型?

要获取方法的类(即,当函数是对象的属性时):

if inspect.ismethod(func):
    the_class = func.__self__.__class__

ref:https://docs.python.org/3/library/inspect.html

答案 3 :(得分:0)

您可以使用__file__变量。

print(__file__)

答案 4 :(得分:0)

获取文件名只需使用 -

print(os.path.basename(__file__))

如果您想要完整的文件路径,可以使用

print __file__