Python 中方法参数 * 和 ** 的例子


在Python中* 和 ** 有特殊含义,他们与函数有关,在函数被调用时和函数声明时有着不同的行为。此处*号不代表C/C++的指针。

其中 * 表示的是元祖或是列表,而 ** 则表示字典

以下为 ** 的例子:

01 #--------------------第一种方式----------------------#

02 import httplib

03 def check_web_server(host,port,path):

04  h = httplib.HTTPConnection(host,port)

05  h.request('GET',path)

06  resp = h.getresponse()

07  print 'HTTP Response'

08  print '        status =',resp.status

09  print '        reason =',resp.reason

10  print 'HTTP Headers:'

11  for hdr in resp.getheaders():

12  print '        %s : %s' % hdr

13  

14  

15 if __name__ == '__main__':

16  http_info = {'host':'www.baidu.com','port':'80','path':'/'}

17  check_web_server(**http_info)
另一种方式: 01 #--------------------第二种方式----------------------#

02  

03  

04 def check_web_server(**http_info):

05  args_key = {'host','port','path'}

06  args = {}

07  #此处进行参数的遍历

08  #在函数声明的时候使用这种方式有个不好的地方就是 不能进行 参数默认值

09  for key in args_key:

10  if key in http_info:

11  args[key] = http_info[key]

12  else:

13  args[key] = ''

14  

15  

16  h = httplib.HTTPConnection(args['host'],args['port'])

17  h.request('GET',args['path'])

18  resp = h.getresponse()

19  print 'HTTP Response'

20  print '        status =',resp.status

21  print '        reason =',resp.reason

22  print 'HTTP Headers:'

23  for hdr in resp.getheaders():

24  print '        %s : %s' % hdr

25  

26  

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)

 

相关内容

    暂无相关文章

评论关闭