docs: def list_tables(self, num_results=None, marker=None, timeout=None):
          '''
          Returns a generator to list the tables. The generator will lazily follow 
          the continuation tokens returned by the service and stop when all tables 
          have been returned or num_results is reached.
  
          If num_results is specified and the account has more than that number of 
          tables, the generator will have a populated next_marker field once it 
          finishes. This marker can be used to create a new generator if more 
          results are desired.
  
          :param int num_results:
              The maximum number of tables to return.
          :param marker:
              An opaque continuation object. This value can be retrieved from the 
              next_marker field of a previous generator object if num_results was 
              specified and that generator has finished enumerating results. If 
              specified, this generator will begin returning results from the point 
              where the previous generator stopped.
          :type marker: obj
          :param int timeout:
              The server timeout, expressed in seconds. This function may make multiple 
              calls to the service in which case the timeout value specified will be 
              applied to each individual call.
          :return: A generator which produces :class:`~azure.storage.models.table.Table` objects.
          :rtype: :class:`~azure.storage.models.ListGenerator`:
          '''
          kwargs = {'max_results': num_results, 'marker': marker, 'timeout': timeout}
          resp = self._list_tables(**kwargs)
  
          return ListGenerator(resp, self._list_tables, (), kwargs)