Python学习笔记——自定义函数(传递任意数量的实参)

Python允许函数从调用语句中收集任意数量的实参。例如下面自定义函数制作一个披萨,它需要接受很多配料,但无法预先确定顾客要点多少种配料。

下面行数只有一个形参*toppings,不管调用语句提供多少个实参,这个参数都会收集到:

形参名*toppings中的*号让Python创建一个名为toppings的元组,该元组包含函数收到的所有的值,在函数体内可以使用toppings元组,从而实现接受任意数量的实参。

(1)结合使用位置参数和任意数量的实参

Python允许函数接受不同类型的实参,位置实参和任意数量实参结合使用,但是任意数量实参的形参比如放在其它位置形参的最后。参考如下代码可以更好理解:

注意:经常看到通用的形参名*args,它就是如上收集任意数量的位置实参。

(2)任意数量的关键字实参

有时候,函数需要接收任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,Python允许函数编写称能够接收任意数量的键值对——调用语句提供多少就接收多少。

下面代码定义的bulid_profile()函数创建一个用户简介,不仅接收名和姓,还接收任意数量的关键字实参:

Python定义函数,形参**user_info中的两个**,将创建一个名为user_info的字典,该字典包含收到的其它所有名值对。我们调用build_profile()函数,向它传递姓名('liuzx')、年龄(18),以及两个键值对(家庭住址='黄河路77号',学历='博士')。函数产生一个类型为字典的实参,实参变量名为user_info,里面收集了调用时传入的键值对(家庭住址='黄河路77号',学历='博士'),并在函数体内,增加两个键值对('姓名'='liuzx','年龄'=18),函数最后把user_info 字典变量作为函数的返回值。

注意:在Pyhton中,经常可以看到**kwargs,它常用于收集任意数量的关键值实参。

在编写函数时,Python还允许混合位置实参,任意数量的实参、任意数量的关键字实参,样式如下:

def function_name(name,age,*args,**kwargs):
    '''
    位值形参:name,age
    任意数量实参:args(元组)
    任意数量关键字实参:kwargs(字典)
    '''
    pass

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/399999.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云/腾讯云幻兽帕鲁服务器为什么更新/重启之后,服务器存档没了?

有的朋友说,他的阿里云幻兽帕鲁服务器重启了一下后,服务器存档就没了?这是怎么回事呢,其实可能的原因,一是服务器还有重启完成,也就是游戏服务端还没有启动,就登进去,可能会显示网络…

智慧公厕是什么?智慧公厕对智慧城市的意义

城市的信息化发展需要催化了智慧城市,公共厕所作为城市的重要民生设施,如何实现更高阶的信息化建设,成为一个重要课题。那么,智慧公厕是什么?为什么它对智慧城市的建设如此重要?本文以智慧公厕源头厂家广州…

git工具

一、命令行工具 二、Git 客户端可视化工具-推荐 1.常用工具 tortoisegit 官网 https://tortoisegit.org/ 推荐 sourcetree 官网https://www.sourcetreeapp.com/ 2.tortoisegit安装 2.1 下载安装包 2.2 下载语言包 2.3 安装 2.4 安装语言包 5.使用 5.1 新建分支 5.2 切换分支…

力扣精选算法100道——Z字形变换(模拟专题)

目录 🎈了解题意 🎈算法原理 🚩先处理第一行和最后一行 🚩再处理中间行 🎈实现代码 🎈了解题意 大家看到这个题目的时候肯定是很迷茫的,包括我自己也是搞不清楚题目什么意思,我…

R cox回归 ggDCA报错

临床预测模型的决策曲线分析(DCA):基于ggDCA包 决策曲线分析法(decision curve analysis,DCA)是一种评估临床预测模型、诊断试验和分子标记物的简单方法。 我们在传统的诊断试验指标如:敏感性&a…

游戏同步+游戏中的网络模块

原文链接:游戏开发入门(九)游戏同步技术_游戏数据同步机制流程怎么开发-CSDN博客 游戏开发入门(十)游戏中的网络模块_游戏开发组网-CSDN博客 3.同步技术的基本常识: a.同步给谁?某个用户&…

Day04 嵌入式---基本定时器

定时器概述 1、软件定时原理 使⽤纯软件的⽅式实现定时功能。 存在的问题:定时不太精准。CPU死等。 1)压栈出栈需要花费时间 2)ARM流⽔线体系架构的原因 2、定时器定时原理 使用精准的时基,通过硬件方式,实现定…

力扣日记2.21-【回溯算法篇】46. 全排列

力扣日记:【回溯算法篇】46. 全排列 日期:2023.2.21 参考:代码随想录、力扣 46. 全排列 题目描述 难度:中等 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&…

Spring6学习技术|IoC|手写IoC

学习材料 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解) 有关反射的知识回顾 IoC是基于反射机制实现的。 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法&…

P2957 [USACO09OCT] Barn Echoes G

P2957 [USACO09OCT] Barn Echoes G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P2957 题目分析 对于求单个字符串的哈希值相当于求前缀和,而求单个字符串的子串的哈希值则相当于求其区间和; 那么只需求两个…

面试经典150题——旋转图像

"You are never too old to set another goal or to dream a new dream." - C.S. Lewis​ 1. 题目描述 2. 题目分析与解析 2.1 思路一 还是最简单的尝试模拟人的思维,如果对于一个普通人解决该题目,那就是先把第一行放在最后一列 或者 把第…

入职字节外包才一个月,我就离职了

有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…

惠尔顿 网络安全审计系统 任意文件读取漏洞复现

0x01 产品简介 惠尔顿网络安全审计产品致力于满足军工四证、军工保密室建设、国家涉密网络建设的审计要求,规范网络行为,满足国家的规范;支持1-3线路的internet接入、1-3对网桥;含强大的上网行为管理、审计、监控模块&#xff1b…

猫毛过敏不能养猫了吗?除猫毛好的宠物空气净化器品牌有哪些?

让我们来探讨一下如何让容易过敏的家庭成员和猫咪更好地相处。很多人喜欢猫咪,但与它们相处一段时间后,可能会出现鼻塞、喷嚏和眼泪不断的过敏症状。那么,为什么会过敏呢?这是因为猫的唾液中含有Fel d1蛋白质,当它们舔…

回显服务器的制作方法

文章目录 客户端和服务器TCP和UDP的特点UDP socket api的使用DatagramSocketDatagramPacketInetSocketAddress API 做一个简单的回显服务器UDP版本的回显服务器TCP版本的回显服务器 客户端和服务器 在网络中,主动发起通信的一方是客户端,被动接受的这一方…

SpringBoot+Vue+MySQL:图书管理系统的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

怀孕了要把猫送走吗?推荐一款吸猫毛神器—宠物空气净化器

相信大部分家庭都会遇到这样一个二选一的难题:怀孕了还能养猫吗?还是要把猫送走? 许多人担心在孕期与宠物接触可能会导致健康问题,主要是因为弓形虫的存在。然而,实际上感染弓形虫并不容易。如果你真的很担心&#xf…

绘图神器VisIt初步使用

文章目录 安装绘图图像属性 VisIt是一款用于可视化科学数据的开源软件,适用于大型数据集,并提供了丰富的可视化和分析功能。 安装 首先下载VisIt,然后下载一些示例以及测试数据,地址在github上。 下载之后安装,有两…

基于Python的热点分析预警系统

项目:基于Python的热点分析预警系统 摘 要 基于网络爬虫的数据可视化服务系统是一种能自动从网络上收集信息的工具,可根据用户的需求定向采集特定数据信息的工具,本项目通过研究爬取微博网来实现微博热点分析数据信息可视化系统功能。对于采…

二叉搜索树(二叉排序树、二叉查找树)

二叉搜索树(二叉排序树、二叉查找树) 一、定义二、操作(一)中序遍历(二)查找(三)插入(四)删除 三、二叉搜索树的应用四、二叉搜索树操作的性能分析五、总结 一…