AttributeError的原产地:对象没有属性“导向”(Origin of AttributeE

2019-10-28 10:36发布

我来到这个帖子: Sympy到numpy的导致AttributeError的:“符号”对象具有“导向”没有属性 ,并想多了解一点异常的更多的起源。

更精确地说,埃里克说:“当你调用np.cos(a_symbol),这下引擎罩显然在转换到numpy的a_symbol.cos()会出现这种类型的错误。” 我想了解如何/从哪里这种行为的起源:如何np.cos(X)可以在引擎盖下翻译成x.cos()?

我试图重现异常的提升,但无法追踪它的起源:

import numpy as np
class toto:
    def __init__(self,x):
        self.x = x
foo = toto(4)

class tata:
    def __init__(self,x):
        self.x = x

    def cos(self):
        print(self.x)

bar = tata(5)

try:
    np.cos(foo)
except:
    np.cos(bar)

这将打印5。

干杯

文章来源: Origin of AttributeError: object has no attribute 'cos'