zoukankan      html  css  js  c++  java
  • Python开发 基礎知識 2.變量 ( *arg, **kwargs )

    變量 *args 和 **kwargs ( *和**為本體,名稱為通俗的名稱約定 )

    *args 用於函式定義。 可將不定數量的參數傳遞給一個函數,傳入函式的引數,會先以Tuple物件收集,再設定給參數

    def test_var_args(f_arg, *arg):
        print("first normal arg:", f_arg)
        for arg1 in arg:
            print("another arg through *argv:", arg1)
    
    test_var_args('yasoob', 'python', 'eggs', 'test')

    first normal arg: yasoob
    another arg through *argv: python
    another arg through *argv: eggs
    another arg through *argv: test

    若有自訂的tuple引數集,可直接以 函數(*引數集名稱) 代入

    def sum3(a, b, c):
        return a + b + c
    
    numbers = (1, 2, 3)
    print(sum3(*numbers))

      

    **kwargs 可以將關鍵字引數收集在dict物件中,適合處裡帶名的參數

    當一個函式所需要的參數個數很多時,可以使用這個方式

    def dosome(**kwargs):
       print(kwargs)
    
    dosome(name = 'Justin', passwd = 123456, job = '?')
    {'passwd': 123456, 'job': '?', 'name': 'Justin'}

    如果函式參數個數固定,也可傳給函式自訂的字典物件,直接以 函數(**引入字典集),則Python會依字典物件的key,將值指定給對應名稱的參數

    def sum3(a, b, c):
        return a + b + c
    
    args = {'a' : 1, 'b' : 2, 'c' : 3}
    print(sum3(**kwargs))

    亦可以在一個函式中,同時使用*與**,會自動分類

    def some(*arg1,**kwargs): 
      print(arg1)
      print(arg2)

    >>> some(1, 2, 3)
    (1, 2, 3)
    {}


    >>> some(a = 1, b = 22, c = 3)
    ()
    {'a': 1, 'c': 3, 'b': 22}


    >>> some(2, a = 1, b = 22, c = 3)
    (2,)
    {'a': 1, 'c': 3, 'b': 22}

     

  • 相关阅读:
    ccf I’m stuck!
    ccf 最大的矩形
    ccf ISBN号码
    ccf 出现次数最多的数
    ccf 相反数
    BestCoder Round #33
    15年3月CCF真题5-最小花费
    15年3月CCF真题4-网络延时
    15年3月CCF真题3-节日
    15年3月CCF真题2-数字排序
  • 原文地址:https://www.cnblogs.com/pyleu1028/p/9882356.html
Copyright © 2011-2022 走看看