如何在Python源代码中找到方法的确切位置?

如何在Python源代码中找到方法的确切位置?,python,Python,因此,在iPython终端中,如果键入一个方法,后跟?,您将获得源代码及其位置: In [1]: import numpy as np In [2]: np.angle?? Source: @array_function_dispatch(_angle_dispatcher) def angle(z, deg=False): z = asanyarray(z) if issubclass(z.dtype.type, _nx.complexfloating):

因此,在
iPython终端
中,如果键入一个方法,后跟
,您将获得源代码及其位置:

In [1]: import numpy as np

In [2]: np.angle??

Source:
@array_function_dispatch(_angle_dispatcher)
def angle(z, deg=False):
    z = asanyarray(z)
    if issubclass(z.dtype.type, _nx.complexfloating):
        zimag = z.imag
        zreal = z.real
    else:
        zimag = 0
        zreal = z

    a = arctan2(zimag, zreal)
    if deg:
        a *= 180/pi
    return a
File:      ~/Documents/venv_global/lib/python3.8/site-packages/numpy/lib/function_base.py
Type:      function
如何在不输入
iPython
的情况下找到源代码的位置(+方法的行号)

附言: (为了可读性,从输出中删除了docstring)

编辑:

我正在寻找一个类似子命令的东西,我可以运行它来提供信息,而不需要进入shell。虽然不确定是否可能,但它看起来是这样的:

ipython --source numpy.angle

您看到的是文档字符串和源文档以及文件路径:

导入检查
将numpy作为np导入
打印(np.角度。\uuuu文件\uuuuuu)
打印('源:')
打印(检查获取源(np角度))
打印('文件:')
打印(inspect.getsourcefile(np.angle))
打印('类型:')
打印(类型(np.角度))

上面的代码将打印您从iPython中的
获得的文档字符串、源文件路径和类型。

这是否回答了您的问题@TankorSmash这是我在发布之前考虑的问题。所有这些都要求你进入一个终端。你是什么意思?您需要运行python来执行python代码
inspect.getsource(foo)
提供源代码,否?@TankorSmash我正在寻找一个可以添加到iPython的子命令,该子命令无需进入shell即可提供给我。例如:
ipython——sourcenumpy.angle
。虽然我不知道这是否可能,但我相信iPython中的
更进一步,并给出了方法的位置。我也补充了这一点。使用
inspect
获取更多详细信息
inspect.getsourcefile(np.angle)
提供的
'
不是确切的文件位置。但是您可以在回答中添加inspect.getsourcelines(np.angle)[1],还有没有一种方法可以在不打开python终端的情况下运行它?是的,而是在上面替换为
的新行上
和运行终端`python-c“导入检查;将numpy作为np导入;#…”