data
您传递给的元组urlunparse
具有以下组件:
scheme, netloc, url, query, fragment = data
如果没有netloc
,并且scheme
不在uses_netloc
,则 url 为
url = scheme + ':' + url
这就是定义urlunparse(调用 urlunsplit)的方式:
def urlunsplit(data):
...
scheme, netloc, url, query, fragment = data
if netloc or (scheme and scheme in uses_netloc and url[:2] != '//'):
if url and url[:1] != '/': url = '/' + url
url = '//' + (netloc or '') + url
if scheme:
url = scheme + ':' + url
请注意,'ssh'
不在uses_netloc
:
uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet',
'imap', 'wais', 'file', 'mms', 'https', 'shttp',
'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '',
'svn', 'svn+ssh', 'sftp','nfs','git', 'git+ssh']
ssh://
如果您提供以下内容,您会得到一个以开头的 url netloc
:
In [140]: urlparse.urlunparse(('ssh','netloc','test_path', None, None, None))
Out[140]: 'ssh://netloc/test_path'