如何在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导入;#…”