在Python中* 和 ** 有特殊含义,他们与函数有关,在函数被调用时和函数声明时有着不同的行为。此处*号不代表C/C++的指针。
其中 * 表示的是元祖或是列表,而 ** 则表示字典
以下为 ** 的例子:
03 |
def check_web_server(host,port,path): |
04 |
h = httplib.HTTPConnection(host,port) |
06 |
resp = h.getresponse() |
08 |
print ' status =' ,resp.status |
09 |
print ' reason =' ,resp.reason |
11 |
for hdr in resp.getheaders(): |
12 |
print ' %s : %s' % hdr |
15 |
if __name__ = = '__main__' : |
16 |
http_info = { 'host' : 'www.baidu.com' , 'port' : '80' , 'path' : '/' } |
17 |
check_web_server( * * http_info) |
另一种方式:
04 |
def check_web_server( * * http_info): |
05 |
args_key = { 'host' , 'port' , 'path' } |
11 |
args[key] = http_info[key] |
16 |
h = httplib.HTTPConnection(args[ 'host' ],args[ 'port' ]) |
17 |
h.request( 'GET' ,args[ 'path' ]) |
18 |
resp = h.getresponse() |
20 |
print ' status =' ,resp.status |
21 |
print ' reason =' ,resp.reason |
23 |
for hdr in resp.getheaders(): |
24 |
print ' %s : %s' % hdr |
27 |
if __name__ = = '__main__' : |
28 |
check_web_server(host = 'www.baidu.com' ,port = '80' ,path = '/' ) |
29 |
http_info = { 'host' : 'www.baidu.com' , 'port' : '80' , 'path' : '/' } |
30 |
check_web_server( * * http_info) |