• 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}

     

  • 相关阅读:
    ConfigurationManager读取dll的配置文件
    计算机常用英语词汇
    Com与.Net互操作
    C#创建COM组件供VB,PB,Delphi调用
    程序员的自我修养
    .NET Remoting三种信道Http,Tcp,IPC和Web Service的访问速度比较(转)
    .NET Remoting与Socket、Webservice和WCF的比较及优势 (转)
    .NET Remoting 入门实例
    关于Assembly.LoadFrom和Assembly.LoadFile的区别
    大数据处理中必不可少的概念
  • 原文地址:https://www.cnblogs.com/pyleu1028/p/9882356.html
Copyright © 2020-2023  润新知