This method has bad semantics. Ideally, _default should only be returned when the object does not have an attribute with the specified name. In all other cases GetAttr should raise the PythonException explaining what went wrong instead of returning _default.