*args + **kwargs

table of Contents

  1. *args
  2. ** kwargs 
  3. *args + **kwargs 

 

  1. *args


    *args 的⽤法 
    *args 和 **kwargs 主要⽤于函数定义。 
    你可以将不定数量的参数传递给⼀个函数。 
    这⾥的不定的意思是:预先并不知道, 函数使⽤者会传递多少个参数给你, 所以在这个场景 下使⽤这两个关键字。 *args 是⽤来发送⼀个⾮键值对的可变数量的参数列表给⼀个函 数. 
    这⾥有个例⼦帮你理解这个概念: 
    def test_var_args(f_arg, *argv): 
        print("first normal arg:", f_arg) 
        for arg in argv: 
            print("another arg through *argv:", arg) 
    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

     

  2. ** kwargs 


    **kwargs 的⽤法 
    **kwargs 允许你将不定长度的键值对, 作为参数传递给⼀个函数。 
    如果你想要在⼀个函 数⾥处理带名字的参数, 你应该使⽤**kwargs。 
    这⾥有个让你上⼿的例⼦: 
    def greet_me(**kwargs): 
        for key, value in kwargs.items(): 
            print("{0} == {1}".format(key, value)) 
    >>> greet_me(name="yasoob") 
    name == yasoob 
    现在你可以看出我们怎样在⼀个函数⾥,
     处理了⼀个键值对参数了。 
    这就是**kwargs的基础, ⽽且你可以看出它有多么管⽤。 

     

  3. *args + **kwargs 


    使⽤ *args 和 **kwargs 来调⽤函数 
    那现在我们将看到怎样使⽤*args和**kwargs 来调⽤⼀个函数。 
    假设,你有这样⼀个 ⼩函数: 
    def test_args_kwargs(arg1, arg2, arg3): 
        print("arg1:", arg1) print("arg2:", arg2) 
        print("arg3:", arg3) 
    你可以使⽤*args或**kwargs来给这个⼩函数传递参数。 
    下⾯是怎样做: # ⾸先使⽤ *args 
    >>> args = ("two", 3, 5) 
    >>> test_args_kwargs(*args) 
    arg1: two
    arg2: 3
    arg3: 5
    # 现在使⽤ **kwargs: 
    >>> kwargs = {"arg3": 3, "arg2": "two", "arg1": 5} 
    >>> test_args_kwargs(**kwargs) 
    arg1: 5 
    arg2: two 
    arg3: 3
    
    
    
    
    标准参数与*args、**kwargs在使⽤时的顺序 那么如果你想在函数⾥同时使⽤所有这三种参数, 
    顺序是这样的: 
    some_func(fargs, *args, **kwargs)
Published 210 original articles · won praise 6 · views 2923

Guess you like

Origin blog.csdn.net/piduocheng0577/article/details/105048692