【轉載】 Python 方法參數 * 和 **

來源:互聯網
上載者:User

標籤:

Python的函數定義中有兩種特殊的情況,即出現*,**的形式。
如:def myfun1(username, *keys)或def myfun2(username, **keys)等。

他們與函數有關,在函數被調用時和函式宣告時有著不同的行為。此處*號不代表C/C++的指標。

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

第一種方式:

 1 import httplib 2 def check_web_server(host,port,path): 3  h = httplib.HTTPConnection(host,port) 4  h.request(‘GET‘,path) 5  resp = h.getresponse() 6  print ‘HTTP Response‘ 7  print ‘        status =‘,resp.status 8  print ‘        reason =‘,resp.reason 9  print ‘HTTP Headers:‘10  for hdr in resp.getheaders():11  print ‘        %s : %s‘ % hdr12  13  14 if __name__ == ‘__main__‘:15  http_info = {‘host‘:‘www.baidu.com‘,‘port‘:‘80‘,‘path‘:‘/‘}16  check_web_server(**http_info)

第二種方式:

 1 def check_web_server(**http_info): 2  args_key = {‘host‘,‘port‘,‘path‘} 3  args = {} 4  #此處進行參數的遍曆 5  #在函式宣告的時候使用這種方式有個不好的地方就是 不能進行 參數預設值 6  for key in args_key: 7  if key in http_info: 8  args[key] = http_info[key] 9  else:10  args[key] = ‘‘11  12  13  h = httplib.HTTPConnection(args[‘host‘],args[‘port‘])14  h.request(‘GET‘,args[‘path‘])15  resp = h.getresponse()16  print ‘HTTP Response‘17  print ‘        status =‘,resp.status18  print ‘        reason =‘,resp.reason19  print ‘HTTP Headers:‘20  for hdr in resp.getheaders():21  print ‘        %s : %s‘ % hdr22  23  24 if __name__ == ‘__main__‘:25  check_web_server(host= ‘www.baidu.com‘ ,port = ‘80‘,path = ‘/‘)26  http_info = {‘host‘:‘www.baidu.com‘,‘port‘:‘80‘,‘path‘:‘/‘}27  check_web_server(**http_info)

 

轉載來自:http://my.oschina.net/u/1024349/blog/120298

【轉載】 Python 方法參數 * 和 **

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.