您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python函数中的不定长参数相关知识总结

51自学网 2021-10-30 22:26:48
  python
这篇教程Python函数中的不定长参数相关知识总结写得很实用,希望能帮到您。

一、 不定长位置参数

# 在定义函数参数时,可以在形参的前面加*,该形参将获取所有的位置实参# 它会将所有的实参保存在一个元组中def fn(*args):    print("args=", args)    print("args type:", type(args))# 带*形参和其他参数配合使用def fn1(a, b, *args):    print(a)    print(b)    print(args)# 下面这两种写法可以,但是在传实参的时候要注意def fn2(*args, a, b):    print(a)    print(b)    print(args)def fn3(a, *args, b):    print(a)    print(args)    print(b)if __name__ == "__main__":    # 接收所有的位置参数    fn(1, 2, 3, 4, 5)    fn1(11, 12, 13, 14)    # fn2(21, 22, 23, 24)  #这么传会报错    fn2(21, 22, a=23, b=24)    # fn3(21, 22, 23, 24)  #这么传会报错    fn3(21, 22, 23, b=24)

fn运行 结果

在这里插入图片描述

fn1运行结果

在这里插入图片描述

fn2运行结果

在这里插入图片描述

fn3运行结果

在这里插入图片描述

总结:

1.带*的形参只能有一个,有多个会报错,不能识别

2.带*的形参可以和其他参数配合使用,比如和不带星的

3.带*的形参不一定要放在最后面,可以放在最前面,中间,最后。但是注意,带星的参数后的所有参数,必须以关键字参数的形式传递,否则会保错。

二、不定长关键字参数

# 带*的形参只能接收位置参数,关键字参数接收不能接收# 如下会报错,fn传如下值是会报错的def fn(*args):    print("args=", args)    print("args type:", type(args))if __name__ == "__main__":    # 这样传会保存,args不能接收关键字参数    fn(1, 2, 3, 4, a=10)

运行如下:

在这里插入图片描述

# **形参能接收关键字参数# 它将接收的所有关键字参数统一保存在一个字典中def fn4(**kwargs):    print("kwargs = ", kwargs)    print(type(kwargs))if __name__ == "__main__":    fn4(a=1, b=2, c=3)

运行结果:

在这里插入图片描述

总结:

1.**形参只能有一个,并且必须写在所有参数的最后。

2.字典的key就是参数的名字,字典的value就是参数的值

到此这篇关于Python函数中的不定长参数相关知识总结的文章就介绍到这了,更多相关Python不定长参数内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Django REST framework 限流功能的使用
Pycharm连接远程服务器并远程调试的全过程
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。