您如何在 python 中检索源代码,检查给出类型错误
how can you retrieve source code in python, inspect gives type error
为了更好地编程,分析 numpy 和 scipy 的源代码可能会派上用场。
import inspect,numpy as np
x = [1,2]
inspect.getsource(np.max(x))
gives TypeError
请帮忙,亲切的问候
np.max(x)
是一个整数,2
。整数没有源代码。
简单尝试
inspect.getsource (np.max)
来自 python 文档
inspect.getsource(object)
Return the text of the source code for an object. The argument may be a module, >class, method, function, traceback, frame, or code object. The source code is >returned as a single string. An OSError is raised if the source code cannot be >retrieved.
在您的示例中显示您正在调用该函数。
试试 inspect.getsource(np.max)
numpy
和scipy
代码,请查看官方文档。
https://numpy.org/doc/stable/reference/generated/numpy.amax.html
通常这些有一个 [source] link。或者它 运行 ipython
,仅使用 np.max??
给出同样的结果。
在这种情况下,大部分显示是文档,实际代码很短:
def amax(a, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue,
where=np._NoValue):
return _wrapreduction(a, np.maximum, 'max', axis, None, out,
keepdims=keepdims, initial=initial, where=where)
File: /usr/local/lib/python3.6/dist-packages/numpy/core/fromnumeric.py
这告诉我们 np.max
(或 amax
)将操作委托给名称相似的 max
方法。如果我们进一步挖掘,我们会发现该方法是 built-in
,也就是说,它是我们无法轻易阅读的编译代码。这种情况在 numpy
中很常见。函数委托给类似命名的方法。除非您准备认真阅读 c
代码,否则这就是您所能得到的。只要你需要,除非你想成为 numpy
developer/contributor.
为了更好地编程,分析 numpy 和 scipy 的源代码可能会派上用场。
import inspect,numpy as np
x = [1,2]
inspect.getsource(np.max(x))
gives TypeError
请帮忙,亲切的问候
np.max(x)
是一个整数,2
。整数没有源代码。
简单尝试
inspect.getsource (np.max)
来自 python 文档
inspect.getsource(object)
Return the text of the source code for an object. The argument may be a module, >class, method, function, traceback, frame, or code object. The source code is >returned as a single string. An OSError is raised if the source code cannot be >retrieved.
在您的示例中显示您正在调用该函数。
试试 inspect.getsource(np.max)
numpy
和scipy
代码,请查看官方文档。
https://numpy.org/doc/stable/reference/generated/numpy.amax.html
通常这些有一个 [source] link。或者它 运行 ipython
,仅使用 np.max??
给出同样的结果。
在这种情况下,大部分显示是文档,实际代码很短:
def amax(a, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue,
where=np._NoValue):
return _wrapreduction(a, np.maximum, 'max', axis, None, out,
keepdims=keepdims, initial=initial, where=where)
File: /usr/local/lib/python3.6/dist-packages/numpy/core/fromnumeric.py
这告诉我们 np.max
(或 amax
)将操作委托给名称相似的 max
方法。如果我们进一步挖掘,我们会发现该方法是 built-in
,也就是说,它是我们无法轻易阅读的编译代码。这种情况在 numpy
中很常见。函数委托给类似命名的方法。除非您准备认真阅读 c
代码,否则这就是您所能得到的。只要你需要,除非你想成为 numpy
developer/contributor.