code: def _maybe_match_name(a, b):
      
      a_has = hasattr(a, 'name')
      b_has = hasattr(b, 'name')
      if a_has and b_has:
          if a.name == b.name:
              return a.name
          else:
              # TODO: what if they both have np.nan for their names?
              return None
      elif a_has:
          return a.name
      elif b_has:
          return b.name
      return None
docs: Try to find a name to attach to the result of an operation between
      a and b.  If only one of these has a `name` attribute, return that
      name.  Otherwise return a consensus name if they match of None if
      they have different names.
  
      Parameters
      ----------
      a : object
      b : object
  
      Returns
      -------
      name : str or None
  
      See Also
      --------
      pandas.core.common.consensus_name_attr