def hasAttr(self, attr):
    'Return whether or not `attr` exists\n\n        Arguments:\n            attr (str): Name of attribute to check\n\n        Example:\n            >>> node = createNode("transform")\n            >>> node.hasAttr("mysteryAttribute")\n            False\n            >>> node.hasAttr("translateX")\n            True\n            >>> node["myAttr"] = Double()  # Dynamic attribute\n            >>> node.hasAttr("myAttr")\n            True\n\n        '
    return self._fn.hasAttribute(attr)
Return whether or not `attr` exists

Arguments:
    attr (str): Name of attribute to check

Example:
    >>> node = createNode("transform")
    >>> node.hasAttr("mysteryAttribute")
    False
    >>> node.hasAttr("translateX")
    True
    >>> node["myAttr"] = Double()  # Dynamic attribute
    >>> node.hasAttr("myAttr")
    True
def hasAttr(self, attr):
    'Return whether or not `attr` exists\n\n        Arguments:\n            attr (str): Name of attribute to check\n\n        Example:\n            >>> node = createNode("transform")\n            >>> node.hasAttr("mysteryAttribute")\n            False\n            >>> node.hasAttr("translateX")\n            True\n            >>> node["myAttr"] = Double()  # Dynamic attribute\n            >>> node.hasAttr("myAttr")\n            True\n\n        '
    return self._fn.hasAttribute(attr)