title: python filename, _ = urlretrieve(url + filename, dest_filename, reporthook=download_progress_hook)
body: <p>I'm a newbie of Python and trying to get to know about machine learning.  Following is a code bock that I get from Udacity assignnment.</p>
  
  <pre><code>def maybe_download(filename, expected_bytes, force=False):
    """Download a file if not present, and make sure it's the right size."""
    dest_filename = os.path.join(data_root, filename)
    if force or not os.path.exists(dest_filename):
      print('Attempting to download:', filename) 
      filename, _ = urlretrieve(url + filename, dest_filename, reporthook=download_progress_hook)
      print('\nDownload Complete!')
    statinfo = os.stat(dest_filename)
    if statinfo.st_size == expected_bytes:
      print('Found and verified', dest_filename)
    else:
      raise Exception(
        'Failed to verify ' + dest_filename + '. Can you get to it with a browser?')
    return dest_filename
  </code></pre>
  
  <p>I can understand most of the part.  However, I'm very confused about <code>filename, _ = urlretrieve(...)</code> part.  What is this assign to?  I trace it in debugger and find that <code>filename = '.\\notMNIST_large.tar.gz'</code> remain no change before or after this expression.</p>
  
  <p>So my question what does this <code>filename, _ = urlretrieve(...)</code> really mean?  Is this some kind of advance technique to assign value in hidden expression?</p>