(一)arg

def main(arg):   # arg为形参print(arg)# 调用main函数
main(1)   # 传入实参1

运行后输出1

如果此时想传入多个参数,还得修改形参,如想传入两个参数时代码修改如下:

def main(arg1, arg2):   print(arg1, args)# 调用main函数
main(1,2)   

这样改来改去就很麻烦

又或者此时如果想传入多个参数,但是又不确定有几个

以上情况可以用*args

(二)*args

args是arguments的缩写,表示位置参数

def main(arg, *args):   print(arg)print(args)# 调用main函数
main(1,2,2,2,2,2,2,2)   

输出结果为:

1
(2,2,2,2,2,2,2)

*args可以实现传入多个,但又不确定几个的形参定义。实参传入后Python将其组织成元组(tuple)

(三)**kwargs

*args是传入任意多的参数。如果想传入任意多具有参数名称的参数,应用**kwargs

kwargs是keyword arguments的缩写,表示关键字参数

def main(arg, *args, **kwargs):   print(arg)print(args)print(kwargs)# 调用main函数
main(1,2,2,2,2,2,2,2,Student="学生",Teacher="老师")   

输出结果:

1
(2,2,2,2,2,2,2)
{'Student':'学生', 'Teacher':'老师'}

**kwargs可以实现传入多个,但又不确定几个的键值对定义。实参传入后Python将其组织成字典(dict)

(四)查看输出变量类型

加上type()查看输出变量类型

def main(arg, *args, **kwargs):   print(type(arg))print(type(args))print(type(kwargs))# 调用main函数
main(1,2,2,2,2,2,2,2,Student="学生",Teacher="老师")   

输出结果:

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

(五)总结

*args和**kwargs是Python中可变参数的两种形式,且*args必须放在**kwargs的前面,因为位置参数在关键字参数的前面

*args可以将用户指定的任意多个参数打包为一个元组传到函数中进行进一步运算

**kwargs将用户传入的参数打包为字典传入函数中用于进一步的计算

参考

Python编程基础:第二十五节 args参数*args

Python编程基础:第二十六节 kwargs参数**kwargs

python中可变参数args传入函数时储存的类型是,Python函数可变参数定义及其参数传递方式实例详解...

Python中的arg,*args,**kwargs用法相关推荐

  1. python中def func(*args, **kwargs)

    在python的函数中经常能看到输入的参数前面有一个或者两个星号,例如: def fun1(param1, *param2): def fun2(param1, **param2): def fun3 ...

  2. python函数参数*arg和**kwargs分别代表什么?

    python函数参数*arg和**kwargs分别代表什么? 注意: 注意:参数arg.*args.**kwargs三个参数的位置必须是一定的.必须是(arg,*args,**kwargs)这个顺序, ...

  3. Python中的基本函数及其常用用法简析

    分享Python中的基本函数及其常用用法简析,首先关于函数的解释函数是为了达到某种目的而采取的行为,函数是可重复使用的,用来实现某个单一功能或者功能片段的代码块,简单来说就是由一系列的程序语句组成的程 ...

  4. python的raw_ input是什么意思-对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

  5. python中str和input_对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

  6. Python中try...except...else的用法

    最近在学习Python,于是总结一些基础的语法,以供自己复习查看,同时提供给有需要的朋友们.. 本篇总结了Python中try...except...else的用法. try:     <语句& ...

  7. python3 isinstance用法_对python中assert、isinstance的用法详解

    1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...

  8. python join_详解Python中的join()函数的用法

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...

  9. python数组用sum求和_对python中array.sum(axis=?)的用法介绍

    根据代码中运行的结果来看,主要由以下几种: 1. sum():将array中每个元素相加的结果 2. axis对应的是维度的相加. 比如: 1.axis=0时,对饮搞得是第一个维度元素的相加, [[0 ...

最新文章

  1. 【笔记】微软onedirve云存储使用小结
  2. [云炬学英语]每日一句2020.9.1
  3. 【Qt5.8】Qt5.8中串口信息类QSerialPortInfo
  4. 表空间迁移(transport tablespace)测试案例
  5. 用计算机唱出惊雷,除了《惊雷》还有多少喊麦神曲?这十首神作你一定听过!...
  6. 迅速步入jQuery的殿堂
  7. kotlin数据类_Kotlin数据类
  8. insert rows into heap/clustered table
  9. 插补c语言程序,直线插补C语言程序.doc
  10. 五星大饭店续集剧情大放送(最新更新)
  11. JPEG文件中的EXIF(上)
  12. 机器人学笔记之——操作臂运动学:驱动器空间、关节空间和笛卡尔空间
  13. BUUCTF-[XMAN2018排位赛]ppap
  14. 制作自动添加IE信任站点运行文件
  15. gensim使用汇总
  16. ROC曲线-阈值评价标准
  17. Android 使用 HTTP 访问网络
  18. 公司金融01.现值与贴现
  19. 基于Java的连连看游戏设计与实现
  20. 谭浩强C++ 第四章

热门文章

  1. 02 Redis 底层数据结构
  2. AI 机器学习实践总结
  3. access vba代码大全_这本VBA经典图书终于做活动了,还是5折!
  4. javascript--经典实例锦集
  5. 安装更强大更美观的zsh,配置oh my zsh及插件
  6. html中怎样变单独英文月份,【Web前端问题】js中,如何将日期中的月份转化为英文显示?...
  7. 解构SPA模式 ZARA、UNIQLO秘诀
  8. 亚洲上海linux_亚洲企鹅中学Linux俱乐部启发社区
  9. 项目经理应该如何制定项目进度计划?
  10. Java实现蓝桥杯单位转换