406
阿里云
技术社区[云栖]
Python 中方法参数 * 和 ** 的例子
在Python中* 和 ** 有特殊含义,他们与函数有关,在函数被调用时和函数声明时有着不同的行为。此处*号不代表C/C++的指针。
其中 * 表示的是元祖或是列表,而 ** 则表示字典
以下为 ** 的例子:
01
|
#--------------------第一种方式----------------------#
|
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)
|
另一种方式:
01
|
#--------------------第二种方式----------------------#
|
04
|
def check_web_server(**http_info):
|
05
|
args_key = {'host','port','path'}
|
08
|
#在函数声明的时候使用这种方式有个不好的地方就是
不能进行 参数默认值
|
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)
|
最后更新:2017-04-03 21:13:16