code: def attribute_path(self, attribute, missing=None, visitor=None):
          
          _parameters = {"node": self, "attribute": attribute}
          if missing is not None:
              _parameters["missing"] = missing
          if visitor is not None:
              _parameters["visitor"] = visitor
          return self.__class__.objects.attribute_path(**_parameters)
docs: Generates a list of values of the `attribute` of all ancestors of
              this node (as well as the node itself). If a value is ``None``, then
              the optional value of `missing` is used (by default ``None``).
  
              By default, the ``getattr(node, attribute, None) or missing``
              mechanism is used to obtain the value of the attribute for each
              node. This can be overridden by supplying a custom `visitor`
              function, which expects as arguments the node and the attribute, and
              should return an appropriate value for the required attribute.
  
              :param attribute: the name of the attribute.
  
              :param missing: optional value to use when attribute value is None.
  
              :param visitor: optional function responsible for obtaining the
                  attribute value from a node.
  
              :return: a list of values of the required `attribute` of the
                  ancestor path of this node.