python - numpy:源代码中的循环定义

标签 python numpy circular-reference

我去查找来源np.transpose ( source ) 并且定义似乎是循环的?

def transpose(a, axes=None):

    try:
        transpose = a.transpose
    except AttributeError:
        return _wrapit(a, 'transpose', axes)
    return transpose(axes)

如果transpose(a)所做的只是调用a.transpose,那么我们如何查找a.transpose

<小时/>

代码的哪一部分进行转置?我所看到的只是对另一个转置函数的引用。

最佳答案

它实际上不是循环引用。 a.transpose 是对对象方法的引用,而不是 numpy 定义的函数。它实际上是在说“如果对象 a 已经有 transpose 方法,则不要管它;否则,使用 _wrapit 来包装对象 ndarray 对象中的 a”。

由于 ndarray 类具有 transpose 方法,因此将 Python 对象强制放入该类即可让该对象访问该方法。

这有点超出了我的专业领域,但是 ndarray 似乎是在 numpy 代码的 C 部分中定义的,因此您可以在其中找到背后的实际逻辑它。

关于python - numpy:源代码中的循环定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886774/

相关文章:

c++ - 在循环引用的上下文中处理循环包含

python - Pytesseract 设置字符白名单

python - 数据文件中的分割线

python - Numpy 的 'linalg.solve' 和 'linalg.lstsq' 没有给出与 Matlab 的 '\' 或 mldivide 相同的答案

python - 请澄清以下Python NumPy数组初始化和拼接示例

ios - 循环引用,Obj-C -> Swift,Swift -> Obj-C

scheme - 诡计多端的循环列表

python - Robot Framework 是有状态的还是无状态的?

python - 如何同步对存储数据的访问?

python - 如何控制scikit-learn决策树算法的精度