函數中參數傳遞的5種方式


1、必須參數(位置參數)
      必需參數:先用形式參數定義,然后在調用時對應位置使用實參(具體的數值)調用,定義的形式參數和調用的實際參數必需一一對應(順序、數量)。

      def sum(a, b):
          return a + b

      sum(5, 6)

2、關鍵字參數
      關鍵字參數:先使用形式參數定義,然后調用時以關鍵字的形式(形式參數 = 實際參數)傳入參數,函數調用時不關心參數的順序。

      def sub(a, b):
          return a - b

      s1 = sub(a=6, b=3)
      s2 = sub(b=3, a=0)
      s3 = sub(9, b=3)

3、默認參數
      默認參數:默認參數是指函數在定義時,參數被預先賦予相應的默認值。這樣在調用時,可以重新賦值, 也可以(對默認參數)不用賦值而使用默認的值。特別注意,默認參數只能定義在后面。

      def mul(a, b=3, c=2):
            print("a:{0}, b:{1}, c:{2}".format(a, b, c))
            return a*b*c

      print(mul(2))
      print(mul(2, b=4))   #若要對默認值參數重新賦值,需要使用 關鍵字=值 的形式傳參
      print(mul(2, b=4, c=6))

 

4、不定長參數
     不定長參數:數需求傳入的參數數量不明確的情況下,一般使用 *args或者 **kwargs形式聲明參數的形式

    (1)以*args形式聲明參數在函數內使用args獲取傳入的參數(args的值是由參數構成的元組)

     def fun(*args):
           print(args)

     #調用示例1
     fun(1, 2, 3, 4, 'a')
     fun()
     fun(4,'a')

     #調用示例2
     l = [1, 2, 3, 4]
     t = ('a', 'b', 'c')
    d = {1:2, 2:3, 3:4}
    #當傳入參數為列表、元組、或者字典的時候,參數名字前需要加*
     fun(*l)
     fun(*t)
     fun(*d)

  (2)**kwargs形式的可變參數,在函數內部kwargs是一個字典,字典的key是我們傳入的形式參數的名字,值為實際參數的值,若以字典形式傳入時,注意字典的key必須時字符串

    def fun(**kwargs):
          print(kwargs)

    #調用形式1:
    fun(a = 1, b = 2, c = 3)
    fun()

    #調用形式2
    d = {'1':2,'2':3,'3':4}
    fun(**d)

5、必須關鍵字參數
      必須關鍵字參數:對於必須關鍵字參數 在傳入時必須以關鍵字形式傳入,一般需要寫在所有參數的最后部分,與其他形式的參數之間用 * 隔開。

      def funkw(a, k=0, *, city, age):
            print(a)
            print(k)
            print(city)
            print(age)

      #正確的調用
      funkw(20, city='西安', age=30)

      #錯誤的調用
      #funkw(20, k=23, '西安', 30)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM