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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 LangChain 和 Milvus 从零搭建 LLM 应用

如何从零搭建一个 LLM 应用?不妨试试 LangChain Milvus 的组合拳。 作为开发 LLM 应用的框架,LangChain 内部不仅包含诸多模块,而且支持外部集成;Milvus 同样可以支持诸多 LLM 集成,二者结合除了可以轻松搭建一个 LL…

在Discord上添加自己的服务器并邀请midjourney机器人加入

我开发的chatgpt网站: https://chat.xutongbao.top

vue2--多设备访问本地调试项目

背景 在vue2开发阶段,为了更好的和小伙伴对项目进行讨论,需要让小伙伴可以看到自己本地的项目。 方案 修改vue2项目配置 在本地进行项目调试时,都是使用的127.0.0.1:8080,为了让局域网中的其他小伙伴可以访问,需要…

阿里云国际-在阿里云服务器上快速搭建幻兽帕鲁多人服务器

幻兽帕鲁是最近流行的新型生存游戏。该游戏一夜之间变得极为流行,同时在线玩家数量达到了200万。然而,幻兽帕鲁的服务器难以应对大量玩家的压力。为解决这一问题,幻兽帕鲁允许玩家建立专用服务器,其提供以下优势: &am…

Docker中如何删除某个镜像

1. 停止使用镜像的容器 首先,您需要停止所有正在使用该镜像的容器。您可以使用 docker stop 命令来停止容器: docker stop 11184993a106如果有多个容器使用该镜像,您需要对每个容器都执行停止命令。您可以通过 docker ps -a | grep core-ba…

数据结构 计算结构体大小

一、规则: 操作系统制定对齐量: 64位操作系统,默认8Byte对齐 32位操作系统,默认4Byte对齐 结构体对齐规则: 1.结构体整体的大小,需要是最大成员对齐量的整数倍 2.结构体中每一个成员的偏移量需要存在…

Selenium常见问题解析

1、元素定位失败: 在使用Selenium自动化测试时,最常见的问题之一是无法正确地定位元素,这可能导致后续操作失败。解决方法包括使用不同的定位方式(如xpath、CSS selector、id等),等待页面加载完全后再进行…

【Oracle】玩转Oracle数据库(三):数据库的创建和管理

前言 嘿,各位数据库小能手们!今天我们要进入数据库的创世纪,探索Oracle数据库的创建和管理!🔧💻 在这篇博文【Oracle】玩转Oracle数据库(三):数据库的创建和管理中&#…

详解动态内存管理!

目录 ​编辑 1.为什么要用动态内存分配 2.malloc和free 2.1 malloc 2.2 free 3.calloc和realloc 3.1 calloc 3.2 realloc 4.常见的动态内存的错误 4.1 对NULL的解引用操作 4.2 对动态内存开辟空间的越界访问 4.3 对非动态内存开辟空间用free释放 4.4 使用free释放动…

【北京游戏业:出海竞争实力全面】

本文将深入分析北京的游戏行业发展。在上海、广州、北京、深圳、成都、杭州、福建七大游戏产业中心城市中,北京无疑是出海竞争力最强的游戏产业集群。本文将全面剖析北京游戏行业的发展现状。 北京是中国游戏产业的发源地。拥有从游戏引擎到美术设计等完整的产业链…

如何在Shopee平台上选择爆款商品:借鉴爆款属性的有效策略

在当今激烈竞争的电商市场中,想要在Shopee平台上取得成功,卖家需要精心选择潜在的热销产品。借鉴爆款商品的属性是一种行之有效的策略,能够帮助卖家快速找到市场上的热门商品。通过分析市场趋势、竞品表现、社交媒体趋势等多方面因素&#xf…

【EI会议征稿通知】第四届自动化控制、算法与智能仿生学术会议(ACAIB 2024)

第四届自动化控制、算法与智能仿生学术会议(ACAIB 2024) 2024 4th Conference on Automation Control, Algorithm and Intelligent Bionics 第四届自动化控制、算法与智能仿生学术会议(ACAIB 2024)将于2024年6月7日-9日在中国银川举行。 本届大会由北…

leetcode hot100 完全平方数

本题中,是给一个整数n,让用完全平方数凑出这个整数,注意,题中给了n的范围,是大于等于1的,也就是说,dp[0]我们可以先不考虑。 整个问题可以抽象成完全背包问题的变形形式,物品就是这…

在 React 中使用 i18next支持多语言

基本用法 安装依赖包 npm i i18next react-i18next i18next-browser-languagedetector --savei18next 提供了翻译的基本能力; react-i18next 是 i18next 的一个插件,用来降低 react 的使用成本; i18next-browser-languagedetector 是用来检测浏览器语言的插件。 …

搜维尔科技:OptiTrack探索人类与技术之间关系的开创性表演

另一种蓝色通过 OptiTrack 释放创造力 总部位于荷兰的当代舞蹈团因其探索人类与技术之间关系的开创性表演而受到广泛赞誉。该公司由富有远见的编舞家大卫米登多普创立,不仅利用技术作为探索的主题,而且将其作为表达故事的动态工具。 “我一直对文化与…

【Java面试系列】JDK 1.8 新特性之 Stream API

目录 一、Stream 简介二、Stream 特点:Stream 注意点:1、什么是聚合操作2、Stream 流1、什么是流2、流的构成3、stream 流的两种操作4、惰性求值和及早求值方法5、Stream 流的并行 三、Stream操作的三个步骤1、创建流第一种:通过集合第二种&a…

ping 8.8.8.8和ping www.baidu.com都OK,但是打不开网页

ping 8.8.8.8和ping www.baidu.com都OK,但是打不开网页 打开设置 -> 网络 找到IPV4, DNS栏输入 8.8.8.8 , apply 设置里界面变成这样 然后网页就能加载了

mysql(五) buffer pool(缓存页数据与索引数据)

前面写了很多mysql的实用基础知识、接下来我将总结整理一些进阶和更深的一些知识、你知道的越多、不知道就越多、让我们一起学习。 目录 一、buffer pool的位置(Innodb存储引擎内) 二、Buffer Pool是什么? 1、降低磁盘访问的机制 2、Buf…

揭秘阿里巴巴商品详情API:电商数据获取新篇章,业务效率飞跃提升

阿里巴巴平台商品详情API接口技术深度解析 一、概览 在阿里巴巴这个庞大的电商生态中,商品详情API接口(item_get)扮演着至关重要的角色。通过这一接口,开发者可以轻松地获取商品的详细信息,为选品、数据分析、价格监…

【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)

本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用&#xff0…