Python函數總結

來源:互聯網
上載者:User

聲明和調用函數:

聲明函數的方法是用def關鍵字,函數名及小括弧裡面的參數列表。

def  foo(x):         print x

調用函數:給出函數名和一小對括弧,並放入所需參數:

#!/usr/bin/env pythonimport  httplibdef  check_web_server(host,port,path):    h=httplib.HTTPConnection(host,port)    h.request('GET',path)    resp=h.getresponse()    print  'Http  Response :'    print '    status = ',resp.status    print '    resson = ',resp.reason    print 'Http Headers:'    for  hdr in resp.getheaders():        print  '    %s: %s ' % hdr’執行結果:check_web_server(‘www.python.org’,80,’/’)Http  Response :    status =  200    resson =  OKHttp Headers:    content-length: 417     x-powered-by: PHP/5.3.3-7+squeeze14     server: Apache     connection: close     date: Tue, 19 Feb 2013 02:39:16 GMT     content-type: text/html; charset=UTF-8

關鍵字參數:

可以省去固定順序的需要,關鍵字參數通過“鍵=值”的形式指定,例如:

     check_web_server(port=80,path='/',host='www.pyton.org')

預設參數:

對參數提供預設值,那可以不必向其傳遞變數值,比如:

    def  check_web_server(host,port=80,path=’/’)

注意:預設參數和關鍵字參數區別:

關鍵字參數只能用於“函數調用”,預設參數用於“函式宣告”;對於預設函數,所有必須提供的參數一定要出現在任何選擇性參數之前,不能混在一起活著顛倒順序。

    def  check_web_server(host,port=80,path) 這個是錯誤的

常見錯誤:

1、將列表和字典作為預設參數;

由於列表和字典都是可變變數,這樣的話看哪呢過會很危險,特別是當他們連續的穿過多個函數調用時,

  def func(arg=[]):                              arg.append(1)      print arg  func()  [1]  func()  [1,1]  func()  [1,1,1]

函數在對象中的引用:

在Python 裡你可以把函數(或方法)當做和其他對象一樣使用,可以放在容器裡,賦值給其他變數,做為參數傳遞給函數等。

當調用函數的時候才會加上小括弧,把它當做變數或者對象傳送時,只需要函數名字就可以啦

匿名函數:

建立的方法是使用lambda關鍵字,它由一個運算式組成,

文法:lambda  args:運算式   執行的時候 lambda 會返回一個可立即使用的函數對象,可以將其儲存為一個變數,或者一個回呼函數以便稍後執行.

*args  和 **kwargs

無論是函數調用韓式聲明,單個星號表示 有元祖或者列表作為參數,兩個星號則代表參數為字典。

函數調用裡的 *  和**

def  check_web_server(host,port,path):

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.