武道之路-煉體期五重天,之路五重

來源:互聯網
上載者:User

武道之路-煉體期五重天,之路五重

函數:

作用:代碼重用性,資料一致性,可移植和擴充。

在python3.x中 過程和函數都是 def 函數名(形參): 如此定義,而區別是函數有return 傳回值,而過程沒有,但是預設返回None,return 可以返回多個值,用逗號隔開(實際上是一個元組),return 還有結束函數啟動並執行作用。

函數調用:先定義函數,對應傳參才能調用(一般定義的形參個數必須大於等於傳入的實參個數,因為可能會有預設參數,參數組會除外,即是 *args(元組),**kwargs(字典)),傳參有位置傳參和關鍵字傳參,

參數組:主要用於不確定實參傳入個數時,或是直接想傳入元組或是字典。

預設參數:形參位置有預設值,不傳此位置的參數,會根據預設值計算,否則按傳入的計算    

例: def test(x,y,z):

    ''' 一般這裡寫注釋'''

    print(x,'---',y,'---',z)

    return 'test----'

位置傳參調用: test(2,4,5)->一一對應x,y,z

關鍵字傳參:test(y=2,x=4,z=8),找到對應的形參名並賦值 

當混用二者時,位置傳參在前面(必須對應傳參才能調用) 如: test(2,z=6,y=3)

*args  如:

def test1(x,*args):

    print(x,'---',args)

    return 'test1----'

可test1(2,4,5,6)->x=2 args:(2,4,6); 即是把多餘的位置傳參變成元組

還可test1(2)->x=2,args:(),不傳為預設空元組,test1(x=3,*[2])->x=3,args:(3,);test1(6,*(2,5))->x=6,args:(2,5)

**kwargs 如:

  def test3(x,y=6,**kwargs):

    print(x,'---',y,'---',kwargs)

    return '222'

test3(6,name='ddd',kk='gg')->x=6,y預設為6,kwargs位{‘name’:'dd','kk':'gg'},即是把對應多的關鍵字傳參變成key=>value對應的字典,注意:需要傳入字典的key最好不要和其它形參相同名,不然會報多傳的錯誤的。

test3(y=3,x=5,mm='fff')->x=5,y=3,kwargs:{'mm':'fff'};test3(7,1)->x=7,y=1,kwargs:{};test3(x=3,3,**{'name':'55'})->x=3,y=3,kwargs:{'name':'55'}

 

3.x 全域變數及局部變數:

全域變數:一般在程式頂級定義的變數就是全域變數,而在子程式(一般是函數)裡定義的變數一般是局部變數,如果同名,在局部範圍裡局部變數起作用,反之亦然。

當全域變數是比較複雜的類型(一般是列表,字典,集合)時,在函數中是可以直接修改了全域變數

當全域變數是單一類型(字元,數字等)時,在函數中可用 global 重新定義全域變數名 就可修改(一般不建議如此,因為可能不知道函數被調用幾次)

在函數內可定義全域變數(直接 global 變數名),一般不建議如此。

 

聯繫我們

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