在Python中如何传递任意数量的实参的示例代码


Posted in Python onMarch 21, 2019

1 用法

在定义函数时,加上这样一个形参 "*形参名",就可以传递任意数量的实参啦:

def make_tags(* tags):
 '''为书本打标签'''
 print('标签:'+str(tags))
make_tags('艺术','艺术史')

运行结果:标签:('艺术', '艺术史')

形参名 *tags 中的星号会让 Python 创建一个名为 tags 的空元组, 并将函数所收到的所有值都封装在这个元组中 。

注意:即便函数只收到一个值,也会被放入元组中。

2 联合位置实参与任意数量实参

如果要让函数接受多种类型的实参, 那就必须在函数定义中将接收任意数量实参的形参定义放在最后 。因为 Python 会先匹配位置实参和关键字实参, 然后再将多余的实参放入最后一个形参元组中 。

def make_tags(book_name, *tags):
 '''为某本书打标签'''
 print('book_name=' + book_name)
 print('tags=' + str(tags))
make_tags('世界美术名作二十讲 : 插图珍藏本','艺术')
make_tags('世界美术名作二十讲 : 插图珍藏本','艺术', '艺术史')

运行结果:
book_name=世界美术名作二十讲 : 插图珍藏本
tags=('艺术',)
book_name=世界美术名作二十讲 : 插图珍藏本
tags=('艺术', '艺术史')

3 任意数量关键字实参

有时候,预先并不清楚传递给函数的会是什么样的参数。 这时, 我们就可以将函数编写成能够接受任意数量的键—值对。

def create_account(name, pwd, **others):
 '''创建账户'''
 account = {}
 account['name'] = name
 account['pwd'] = pwd
 for key, value in others.items():
 account[key] = value
 return account
account = create_account('早安', '1', sex='女', age='20')
print('account=' + str(account))

运行结果:
account={'name': '早安', 'pwd': '1', 'sex': '女', 'age': '20'}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
python 调用HBase的简单实例
Dec 18 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
python中的decorator的作用详解
Jul 26 Python
python实现大文本文件分割
Jul 22 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python运算符之与用户交互
Apr 13 Python
详解python使用turtle库来画一朵花
Mar 21 #Python
python中import与from方法总结(推荐)
Mar 21 #Python
python批量创建指定名称的文件夹
Mar 21 #Python
python根据txt文本批量创建文件夹
Dec 08 #Python
python+os根据文件名自动生成文本
Mar 21 #Python
Python----数据预处理代码实例
Mar 20 #Python
浅谈python编译pyc工程--导包问题解决
Mar 20 #Python
You might like
php5.2.0内存管理改进
2007/01/22 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
JS实现星星海特效
2019/12/24 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
关于VPN
2012/06/10 面试题
Linux Interview Questions For software testers
2012/06/02 面试题
单位法人授权委托书范本
2014/10/09 职场文书
十佳少年事迹材料
2014/12/25 职场文书
幼儿园六一主持词
2015/06/30 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
美元符号 $
2022/02/17 杂记