Return True if supplied key string serves as a valid attribute name: alphanumeric strings
        beginning with a letter.  Leading underscore not allowed.  Also test for conflict with protected
        attribute names (e.g. dict class instance methods).

def _valid_key(self, key):
        """Return True if supplied key string serves as a valid attribute name: alphanumeric strings
        beginning with a letter.  Leading underscore not allowed.  Also test for conflict with protected
        attribute names (e.g. dict class instance methods).
        """
        if not isinstance(key, str):
            return False
        elif hasattr({}, key):
            return False
        elif key in self._special_names:
            return False
        else:
            return self._valid_key_pattern.match(key)