在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的几条建议分享
Feb 10 Python
web.py在模板中输出美元符号的方法
Aug 26 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
python tkinter基本属性详解
Sep 16 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
安装python及pycharm的教程图解
Oct 10 Python
python3正则模块re的使用方法详解
Feb 11 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 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
一个好用的分页函数
2006/11/16 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python continue语句实例用法
2020/02/06 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
jupyter notebook清除输出方式
2020/04/10 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
python GUI计算器的实现
2020/10/09 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
个人委托书范本
2014/04/02 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
springboot实现string转json json里面带数组
2022/06/16 Java/Android