python之參數總結


  1. 位置參數
     power(x, n)函數有兩個參數:x和n,這兩個參數都是位置參數,調用函數時,傳入的兩個值按照位置順序依次賦給參數x和n。
    
  2. 默認參數 =
     默認參數必須指向不變對象!
     def enroll(name, gender, age=6, city='Beijing'):
     print('name:', name)
     print('gender:', gender)
     調用:enroll('Bob', 'M', 7)、enroll('Adam', 'M', city='Tianjin')
  3. 可變參數:* >=0
     可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝爲一個tuple---類似list,不可變元組
     def calc(*numbers):
         sum = 0
         for n in numbers:
             sum = sum + n * n
         return sum
     調用時傳入一個list或tuple
     調用 calc(1,2,3)
    
  4. 關鍵字參數(**kw)----key--value(map)
     關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝爲一個dict。
     def person(name, age, **kw):
         print('name:', name, 'age:', age, 'other:', kw)
     調用 >>> person('Michael', 30)
             name: Michael age: 30 other: {}
             也可以傳入任意個數的關鍵字參數
             person('Bob', 35, city='Beijing')
             name: Bob age: 35 other: {'city': 'Beijing'}
    
  5. 命名關鍵字參數 *
     如果要限制關鍵字參數的名字,就可以用命名關鍵字參數
  6.  例如,只接收city和job作爲關鍵字參數。
     def person(name, age, *, city, job):
     print(name, age, city, job)
  7.  如果函數定義中已經有了一個可變參數,後面跟着的命名關鍵字參數就不再需要一個特殊分隔符*了
     def person(name, age, *args, city, job):
     print(name, age, args, city, job)
     命名關鍵字參數必須傳入參數名,這和位置參數不同。
     如果命名關鍵字參數city具有默認值,調用時,可不傳入city參數。
    
  8. 參數組合
     在Python中定義函數,可以用必選參數、默認參數、可變參數、關鍵字參數和命名關鍵字參數,
  9. 這5種參數都可以組合使用。但是請注意,參數定義的順序必須是
  10. 必選參數-->默認參數-->可變參數-->命名關鍵字參數-->關鍵字參數。

備註:

>>> args = (1, 2, 3, 4)
>>> kw = {'d': 99, 'x': '#'}
>>> f1(*args, **kw)     
#這句其實就是f1(args[1],args[2],args[3],args[4],d=99,x='#')的縮寫
a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
>>> args = (1, 2, 3)
>>> kw = {'d': 88, 'x': '#'}
>>> f2(*args, **kw)     
#這句其實就是f2(args[1],args[2],args[3],d=88,x='#')的縮寫



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章