1266075553**** object has no attribute ***

def __getattr__(self, name):
    if spam(name):
        return egg
    raise AttributeError("'{0.__class__.__name__} object has no attribute '{1}''"
                         .format(self, name))

といったコードは、委譲!委譲!委譲!を実践すると良く書きますが、
毎回、"'{0.__class__.__name__} has no attribute '{1}''"を書くと、ツヅリ間違いの元です。

なので、関数にしてみました。

def noAttrError(self, name):
    return AttributeError("'{0.__class__.__name__} object has no attribute '{1}''"
                           .format(self, name))


ところで、最初は「Pythonソースコードには"StandardNoAttrMsg"みたいな関数があるに違いない!」
と思って検索してみたのですが、そんなものはありませんでした。
ひたすら"%s object has no attribte %s"のコピペでした(と言っても3箇所程度でしたが)。


ソースを検索して気づいたのですが、
新スタイルクラスでは "%s object has no attribute %s" ですが、
旧スタイルクラスだと "%s instance has no attribute %s" なのですね。
だからって、どうという事も無いですが。

広告を非表示にする