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 self,cls,decorator的理解
Jul 13 Python
Python实现数据库编程方法详解
Jun 09 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
python爬取淘宝商品详情页数据
Feb 23 Python
python 构造三维全零数组的方法
Nov 12 Python
python将视频转换为全字符视频
Apr 26 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
python datetime处理时间小结
Apr 16 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
Python异常处理知识点总结
2019/02/18 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
500行python代码实现飞机大战
2020/04/24 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
德国购买健身器材:AsVIVA
2017/08/09 全球购物
优秀学生评语大全
2014/04/25 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL