1. 程式人生 > 程式設計 >Python函式中的可變長引數詳解

Python函式中的可變長引數詳解

一、Python函式中的引數

1、使用python的函式時,有引數類別,比如位置引數、關鍵字引數、可變長引數

2、位置引數、關鍵字引數很好理解,關鍵是可變長引數經常能見到,但是一直沒有搞懂是什麼意思

二、可變長引數

1、一個星號:函式可以接收任意個數的引數,只需要在形參前面加一個*(星號),一個星號形參的函式會把多個位置引數值當成元祖的形式傳入,也就是傳入的多個引數值可以在函式內部進行元祖遍歷

def length_param(a,*args):
  print("a=",a)
  print("args=",args)

  for arg in args:
    print("arg=",arg)


length_param("zim","this","is","a","good","thing")

執行結果:

2、兩個星號:形參前面加兩個*(星號),注意是兩個星號哦,兩個星號形參的函式會把關鍵字引數值當成字典的形式傳入,在函式內部會把關鍵字引數當成字典在函式內部進行遍歷

def length_param(a,**kwargs):
  print("a=",a)

   print("kwargs=",kwargs)
 
   for kwarg in kwargs.keys():
     print("kwarg=",kwarg)

length_param("zim",b="this",c="is",d="good")

執行結果:

3、一個星號和兩個星號混合使用

class Params:
  def length_param(self,*args,**kwargs):
    print("args=",args)
    print("kwargs=",kwargs)

    for arg in args:
      print("arg=",arg)

    for kwarg in kwargs.values():
      print("kwarg=",kwarg)

one = Params()

one.length_param("sam","thing",b="you",c="love",d="me")

執行結果:

注意:傳入可變長引數時,傳入關鍵字引數的key一定不能有冒號,否則會報如下錯誤

三、注意事項:

函式呼叫時關鍵字引數必須在位置引數後面

以上就是本次介紹的全部知識點內容,感謝大家的學習和對我們的支援。