hasattr( proxy, 'position') is implemented calling getattr( proxy, 'position') this invokes overhead and may trigger exceptions 'position' in dir( proxy) behaves more friendly but may overlook metaclass attributes: >>> class Meta(type): ... foo = 'bar' ... >>> class Foo(metaclass=Meta): ... pass ... >>> hasattr(Foo, 'foo') True >>> 'foo' in dir(Foo) False 'position' in list( map( lambda x: x.lower(), proxy.get_attribute_list())) 'position' in list( map( str.lower, p.get_attribute_list())) this seems to be a non-destructive solution for Tango-related applications