<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_object(self, obj_class, data=None, subset=None):
 """Return a subclassed JSSObject instance by querying for existing objects or posting a new object. Args: obj_class: The JSSObject subclass type to search for or create. data: The data parameter performs different operations depending on the type passed. None: Perform a list operation, or for non-container objects, return all data. int: Retrieve an object with ID of <data>. str: Retrieve an object with name of <str>. For some objects, this may be overridden to include searching by other criteria. See those objects for more info. xml.etree.ElementTree.Element: Create a new object from xml. subset: A list of XML subelement tags to request (e.g. ['general', 'purchasing']), OR an '&' delimited string (e.g. 'general&purchasing'). This is not supported for all JSSObjects. Returns: JSSObjectList: for empty or None arguments to data. JSSObject: Returns an object of type obj_class for searches and new objects. (FUTURE) Will return None if nothing is found that match the search criteria. Raises: TypeError: if subset not formatted properly. JSSMethodNotAllowedError: if you try to perform an operation not supported by that object type. JSSGetError: If object searched for is not found. JSSPostError: If attempted object creation fails. """

        if subset:
            if not isinstance(subset, list):
                if isinstance(subset, basestring):
                    subset = subset.split("&")
                else:
                    raise TypeError

        if data is None:
            return self.get_list(obj_class, data, subset)
        elif isinstance(data, (basestring, int)):
            return self.get_individual_object(obj_class, data, subset)
        elif isinstance(data, ElementTree.Element):
            return self.get_new_object(obj_class, data)
        else:
            raise ValueError