美文网首页
Python 的 *args 和 **kwargs

Python 的 *args 和 **kwargs

作者: v1coder | 来源:发表于2019-03-12 13:36 被阅读0次

    并不是必须写成 *args**kwargs
    只有变量前面的 *(星号)才是必须的。 你也可以写成*var**vars 。而写成 *args**kwargs 只是一个通俗的命名约定。

    *args 表示可变数量(≥0)的非键值对参数。(任意长度的列表)
    **kwargs 表示可变数量(≥0)的键值对(关键字)参数。(任意长度的字典)

    用法:

    1.可使用 *args**kwargs 来定义函数

    # 使用 *args 定义函数
    def test_args_1(*args):
        for arg in args:
            print(arg)
    
    test_args_1('ni','hao')
    # test_args_1() 可传入任意(≥0)个参数 
    
    
    # 使用 **kwargs 定义函数
    def test_kwargs_1(**kwargs):
        print(kwargs)
    
    test_kwargs_1(ni='1', hao='2’)
    # 可传入任意(≥0)个键值对参数
    

    2.可使用 *args 和 **kwargs 来调用函数

    # 使用 *args 调用函数
    def test_args_2(a,b,c):
        print(a,b,c)
    
    abc = [1,2,3]
    test_args_2(*abc)
    # 把列表以 *args 方式传入函数
    
    
    # 使用 **kwargs 调用函数
    def test_kwargs_2(a,b,c):
        print(a,b,c)
    
    abc = {'c':1, 'b':2, 'a':3}
    test_kwargs_2(**abc)
    # 把列表以 **kwargs 方式传入函数
    # 输出:
    3 2 1
    

    鸣谢:

    怎样使用*args 和 **kwargs - 《Python 进阶》
    Use of *args and **kwargs - stackoverflow
    函数的参数 - 廖雪峰
    理解 Python 中的 *args 和 **kwargs

    相关文章

      网友评论

          本文标题:Python 的 *args 和 **kwargs

          本文链接:https://www.haomeiwen.com/subject/fdwgpqtx.html