旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

[Python] hasattrで属性の有無をチェック

2009年10月16日

オブジェクトの属性(attribute)の有無を調査する時に、
組み込み関数のhasattrでの存否確認方法を知らなくて↓

class Klass(object):
    def __init__(self):
        self.foo = 1
        k = Klass()
        print hasattr(k, "foo")
        print hasattr(k, "bar")

AttributeErrorでやってた損してた↓

class Klass(object):
    def __init__(self):
        self.foo = 1
        k = Klass()
        try:
            print k.foo
            print k.bar
        except AttributeError:
            print "Not Found!"

・・・という話です、微ネタでスマソ。

【参考】
Pythonマニュアル該当部分
hasattrと例外処理(AttributeError)の処理性能差 – てけらぼ

これで、getattr, setattr, hasattr の三兄弟が揃って気分爽快!