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



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

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,我将如何找到源代码的位置(+方法的行号(。

PS:(为了可读性,从输出中删除了docstring(。

编辑:

我正在寻找一个可以运行的子命令,它可以在不需要输入shell的情况下提供信息。虽然不确定这是否可能,但它看起来像这样:

ipython --source numpy.angle

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

import inspect
import numpy as np
print(np.angle.__doc__)
print('Source:')
print(inspect.getsource(np.angle))
print('File:')
print(inspect.getsourcefile(np.angle))
print('Type:')
print(type(np.angle))

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

最新更新