zoukankan      html  css  js  c++  java
  • Python 中方法参数 * 和 ** 的例子

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

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

    以下为 ** 的例子:

    01 #--------------------第一种方式----------------------#
    02 import httplib
    03 def check_web_server(host,port,path):
    04  = 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  = 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)
  • 相关阅读:
    网络流之转换为对偶图
    BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)
    BZOJ[HNOI2005]狡猾的商人(差分约束)
    BZOJ [ZJOI2007]矩阵游戏(二分图匹配)
    BZOJ 1191: [HNOI2006]超级英雄Hero(二分图匹配)
    BZOJ 1270: [BeijingWc2008]雷涛的小猫(DP)
    BZOJ 1303: [CQOI2009]中位数图
    BZOJ [HNOI2006]鬼谷子的钱袋
    BZOJ1002 [FJOI2007]轮状病毒(最小生成树计数)
    A* 算法讲解
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3002631.html
Copyright © 2011-2022 走看看