<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_or_fetch_id(self, zobj, fetch_func):
 """ Returns the ID of a Zobject wether it's already known or not If zobj.id is not known (frequent if zobj is a selector), fetches first the object and then returns its ID. :type zobj: a zobject subclass :type fetch_func: the function to fetch the zobj from server if its id is undefined. :returns: the object id """


        try:
            return zobj.id
        except AttributeError:
            try:
                return fetch_func(zobj).id
            except AttributeError:
                raise ValueError('Unqualified Resource')