Python全棧__動態參數、名稱空間、範圍、範圍鏈、載入順序、函數的嵌套、global、nonlocal

來源:互聯網
上載者:User

標籤:rgs   分享   作用   info   turn   接收   不能   oca   名稱空間   

1、動態參數

  當實參數量與形參數量相等時,參數傳遞正常。

def func1(a, b, c):    passfunc1(1, 2, 3)

 

 

  當實參數量與形參數量不相等時,則會報錯。

def func1(a, b, c):    passfunc1(1, 2, 3, 4, 5, 6, 6)

 

 

  使用者傳入到函數中的實參數量不確定時,或者為了以後擴充,此時要用到動態參數 *args  **kwargs(萬能參數)。

  順序:

    位置參數,*args,預設參數,**kwargs

  1、*args

    *args是接收的是所有的位置參數。

def func(*args, **kwargs):    print(args)    print(kwargs)func(1, 2, 3, 4)

  

   注意:print()裡面的args前面不能帶 * 。

  2、**kwargs

     **kwargs接收的是所有的關鍵字參數。 

def func(*args, **kwargs):    print(args)    print(kwargs)func(x=4, y=5, z=6)

 

   注意:print()裡面的args前面不能帶 * 。

 

def func(*args, **kwargs):    print(args)    print(kwargs)func(1, 2, 3, x=4, y=5, z=6)

 

 

  順序

    位置參數,預設參數

def func2(a, b, sex = ‘男‘):    print(a)    print(b)    print(sex)func2(1, 2, ‘女‘)

 

 

  位置參數、*args、預設參數

def func2(a, b,*args, sex = ‘男‘):    print(a)    print(b)    print(args)    print(sex)func2(1, 2, 5,6,7,8,9, sex=‘女‘)

 

 

  位置參數、*args、預設參數、**kwargs

def func2(a, b, *args, sex=‘男‘,age=20, **kwargs):    print(a)    print(b)    print(args)    print(sex)    print(age)    print(kwargs)func2(1, 2, 5, 6, 7, 8, 9, x=6, y=5, name=‘alex‘)

 

 

  加法器:

def sum1(*args):    ret = 0    for i in args:        ret += i    return retprint(sum1(1, 2, 3,))

 

 

def func3(*args, **kwargs):    print(args)    print(kwargs)l1 = [1, 2, 3]l2 = [11, 21, 32]func3(l1, l2)

 

 

def func3(*args, **kwargs):    print(args)    print(kwargs)l1 = [1, 2, 3]tu1 = (1, 2, 3)tu2 = (11, 22, 33)func3(*l1, *tu1, *tu2)

 

 

def func3(*args,**kwargs):    print(args)func3(1, 2, 3, 1, 2, 3, 11, 22, 33)

 

 

  在函數的定義中, * 是彙總的意思。

def func3(*args,**kwargs):    print(args)    print(kwargs)l1 = [1, 2, 3]dic ={‘name‘: ‘alex‘}dic1 ={‘age‘: 1000}func3(*l1, **dic, **dic1)

 

 

  * 的魔性用法:

def func3(*args,**kwargs):  # 函數的定義 *用意是彙總。    print(args)    print(kwargs)l1 = [1, 2, 3]tu1 = (1, 2, 3)tu2 = (11, 22, 33)func3(*l1, *tu1, *tu2)

 

 

def func3(*args,**kwargs):    print(args)    print(kwargs)func3(1,2,3,1,2,3,11,22,33)

 

 

def func3(*args,**kwargs):    print(args)    print(kwargs)l1 = [1, 2, 3]dic ={‘name‘: ‘alex‘}dic1 ={‘age‘: 1000}func3(*l1, **dic, **dic1)

 

 

2、名稱空間、範圍、範圍鏈、載入順序  1、空間名稱

 

 

 

  2、範圍

 

 

 

  3、範圍鏈

 

 

 

  4、載入順序 

 

 

 

 

3、函數的嵌套

 

 

 

4、global、nonlocal   1、global

 

 

 

   2、nonlocal

 

 

 

 

 

 

Python全棧__動態參數、名稱空間、範圍、範圍鏈、載入順序、函數的嵌套、global、nonlocal

相關文章

聯繫我們

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