在Python上的Ubuntu中查找函数声明

时间:2012-10-17 20:01:05

标签: python graph-tool

我有一个模糊定义的函数类函数我调用的模块图GT(它是图形工具)。所以我声明g = gt.graph()然后想要使用g.degree_property_map但不知道如何。因此,我想看看代码g.degree_property_map或在这种情况下只定义函数的位置。我该怎么找到?我正在使用vm上的命令行。

由于

作为参考,有问题的图书馆是图表工具 - http://projects.skewed.de/graph-tool/

我目前正在使用graph_tool.all import *导入它。这当然有点问题。

4 个答案:

答案 0 :(得分:3)

您可以使用inspect.getsource(gt.Graph.degree_property_map)。 (你必须import inspect。)

当然,您传入getsource()的内容会因导入Graph的方式而有所变化。因此,如果您使用from graphtools.all import *,则只需使用inspect.getsource(Graph.degree_property_map)

答案 1 :(得分:1)

如果打开交互式python(在命令行中键入python并按Enter键),您应该能够运行命令help(<graph's module name>),然后在FILE部分下运行生成的帮助文档,您应该看到您感兴趣的代码的绝对路径。

例如,我刚跑了:

import numpy
help(numpy)

# Returned documentation containing:
# FILE
# /usr/lib/python2.7/dist-packages/numpy/__init__.py

此外,

import my_module # A module I just created that contains the "Line" class
help(my_module)

# Returned documentation containing:
# FILE
# /home/<my user name>/Programming/Python/my_module.py

答案 2 :(得分:1)

如果它是普通函数(不是内置函数,ufunc等),您可以尝试使用func_code属性

例如:

>>> inspect.iscode
<function iscode at 0x02EAEF30>
>>> inspect.iscode.func_code
<code object iscode at 02EB2B60, file "C:\Python27\lib\inspect.py", line 209>

答案 3 :(得分:0)

没关系,我只是帮助(graph_tool)并手动跳过代码。谢谢你的帮助!