zoukankan      html  css  js  c++  java
  • Python的*args与**kwargs

    当Python的函数的参数不确定时,可以使用*args与**kwargs来指代不定数量的参数。

    两者的区别是,*args是个tuple(元组),而**kwargs是个dict(字典)。

    先通过代码来验证上述的结论是否正确:

    def func_args(*args):
        print(type(args))
    
    def func_kwargs(**kwargs):
        print(type(kwargs))
    
    if __name__ == '__main__':
        func_args(1, 2, 3)
        func_kwargs(a=1, b=2, c=3)

    运行结果,可以明确看出args是元组,kwargs是字典

    <class 'tuple'>
    <class 'dict'>

    接着尝试下*args的使用,实现一个函数,将传入的参数值×2后返回。因为传入的参数数量不定,所以函数返回的结果也不定。

    def func_a(*args):
        return tuple(arg * 2 for arg in args)
    
    if __name__ == '__main__':
        a, b = func_a(1, 2)
        c, d = func_a('a', 'b')
        print(a, b, c, d)

    在func_a中,返回了一个元组,利用Python元组自动解包的功能,将tuple的值分别赋值给变量a 和 b。

    运行结果:

    2 4 aa bb
  • 相关阅读:
    各种知识点
    链表
    滑动窗口
    数组

    【转】无重复字符的最长子串
    【转】荷兰国旗问题 三指针排序
    【转】回溯思想团灭排列、组合、子集问题
    【LeetCode】45. 跳跃游戏 II
    动态分配内存初始化二维数组
  • 原文地址:https://www.cnblogs.com/blackmatrix/p/5603144.html
Copyright © 2011-2022 走看看