Python函数中的*args,**kwargs作用与用法

前言

最近在使用Python函数的时候,经常碰见函数中使用*args**kwargs,而且参数的传递也是非常奇特,就特意对Python函数中*args**kwargs进行了查询,下面就以实例进行说明。

1 Python中的*args**kwargs

在 Python 中,*args**kwargs 分别用于处理函数的不定数量的位置参数和关键字参数。这句话比较难以理解,直接通过实例进行说明。

1.1 *args

*args 表示接受任意数量的位置参数。在函数定义中,*args 允许函数接受不定数量的位置参数,并将它们作为一个元组传递给函数。

def example_function(*args):
    for arg in args:
        print(arg)
        
#有两种传递方式,第一种直接传递元组
example_function(1, 2, 3, 4)
#第二种先定义一个元组,然后利用*()进行传递
my_tuple = (1, 2, 3, 4)
example_function(*my_tuple)
#两种运行结果相同
# 1
# 2
# 3
# 4

1.2 **kwargs

**kwargs 表示接受任意数量的关键字参数。在函数定义中,**kwargs 允许函数接受不定数量的关键字参数,并将它们作为一个字典传递给函数。

def example_function(**kwargs):
    for key, value in kwargs.items():
        print(f'{
     key}: {
     value}')

#有两种传递方式,第一种直接传递键值对
example_function(a=1, b=2, c=3)
#第二种是定义一个字典,用**{}进行解包
my_dict = {
   'a': 1, 'b': 2, 'c': 3}
example_function(**my_dict)
#两种运行结果相同
# a: 1
# b: 2
# c: 3

1.3 *args**kwargs联合使用

有些函数中往往*args**kwargs都存在,因此它既可以接受任意数量的位置参数(通过 *args),又可以接受任意数量的关键字参数(通过 **kwargs)。

#定义一个传递*args 和 **kwargs函数
def example_function(*args,**kwargs):
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(f'{
     key}: {
     value}')
#定义元组和字典
my_tuple = (1, 2, 3, 4)
my_dict = {
   'a': 1, 'b': 2, 'c': 3}
#一起传递元组和字典
example_function(*my_tuple,**my_dict)

# 结果
# 1
# 2
# 3
# 4
# a: 1
# b: 2
# c: 3

后记

大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。

相关推荐

  1. Python函数*args,**kwargs作用

    2023-12-30 21:40:02       60 阅读
  2. pythonprint函数

    2023-12-30 21:40:02       55 阅读
  3. pythonsplit函数

    2023-12-30 21:40:02       45 阅读
  4. SQLLAG函数LEAD函数

    2023-12-30 21:40:02       32 阅读
  5. Pythonpop()函数

    2023-12-30 21:40:02       36 阅读
  6. Pythonsort()sorted()

    2023-12-30 21:40:02       33 阅读
  7. Python】pandas.cut()函数

    2023-12-30 21:40:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-30 21:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-30 21:40:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-30 21:40:02       82 阅读
  4. Python语言-面向对象

    2023-12-30 21:40:02       91 阅读

热门阅读

  1. Jmeter学习总结(6)——Beanshell中If和For应用

    2023-12-30 21:40:02       58 阅读
  2. 编程笔记 html5&css&js 014 网页布局框架

    2023-12-30 21:40:02       60 阅读
  3. C++哈希表(unordered_map和unordered_set)

    2023-12-30 21:40:02       44 阅读
  4. ✨ 2024新年Flag ✨

    2023-12-30 21:40:02       46 阅读
  5. C复习-查缺补漏-更新中

    2023-12-30 21:40:02       64 阅读
  6. 深入理解c++ 继承

    2023-12-30 21:40:02       52 阅读
  7. LeetCode第20题 - 有效的括号

    2023-12-30 21:40:02       66 阅读
  8. 力扣labuladong——一刷day81

    2023-12-30 21:40:02       58 阅读
  9. LeetCode657. Robot Return to Origin

    2023-12-30 21:40:02       55 阅读
  10. mysql 数据查重与查重分页

    2023-12-30 21:40:02       56 阅读
  11. leetcode541. 反转字符串II

    2023-12-30 21:40:02       58 阅读