Python函数中的不定长参数相关知识总结


Posted in Python onJune 24, 2021

一、 不定长位置参数

# 在定义函数参数时,可以在形参的前面加*,该形参将获取所有的位置实参
# 它会将所有的实参保存在一个元组中
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运行 结果

Python函数中的不定长参数相关知识总结

fn1运行结果

Python函数中的不定长参数相关知识总结

fn2运行结果

Python函数中的不定长参数相关知识总结

fn3运行结果

Python函数中的不定长参数相关知识总结

总结:

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)

运行如下:

Python函数中的不定长参数相关知识总结

# **形参能接收关键字参数
# 它将接收的所有关键字参数统一保存在一个字典中
def fn4(**kwargs):
    print("kwargs = ", kwargs)
    print(type(kwargs))

if __name__ == "__main__":
    fn4(a=1, b=2, c=3)

运行结果:

Python函数中的不定长参数相关知识总结

总结:

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

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

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

Python 相关文章推荐
python 多线程实现检测服务器在线情况
Nov 25 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
在python中使用with打开多个文件的方法
Jan 07 Python
Python 学习教程之networkx
Apr 15 Python
python按比例随机切分数据的实现
Jul 11 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
python Tornado框架的使用示例
Oct 19 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
Python面向对象之内置函数相关知识总结
Jun 24 Python
如何利用Python实现一个论文降重工具
Jul 09 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
js实现单一html页面两套css切换代码
2013/04/11 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
详解vue-router传参的两种方式
2018/09/10 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
python批量解压zip文件的方法
2019/08/20 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
详解Flask前后端分离项目案例
2020/07/24 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
如何写出好的Java代码
2014/04/25 面试题
大学毕业感言50字
2014/02/07 职场文书
40岁生日感言
2014/02/15 职场文书
投资建议书模板
2014/05/12 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
行政介绍信范文
2015/05/04 职场文书
导游词之无锡唐城
2019/12/12 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android