0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python函数的万能参数

马哥Linux运维 来源:博客园 2024-07-17 14:56 次阅读

我们通过一个简单的事例来展示一下函数的万能参数,我们先写一个最简单的函数

def test(*args,**kwargs):
    print(args,kwargs)

然后定义两个变量

l = [1,2,3,4]
d = {"a":1,"b":2}

下面我们分别看下两种传参的方式有什么不同

第一种方式

test(l,d)

如果是使用上面的方式传参,那么l,d这2个变量都会传递给args这个形参,作为args变量的两个元素,kwargs是一个空的字典,没有任何参数传递一个他

([1, 2, 3, 4], {'a': 1, 'b': 2}) {}

我们可以看到列表l和字典d被当做一个tuple的两个元素了

第二种方式

test(*l,**d)

如果是上面的方式传参,那么l这个变量就会被赋值给args,d这个变量就会被赋值给kwargs

(1, 2, 3, 4) {'a': 1, 'b': 2}

通过上面的演示,你应该基本上了解python的万能参数了吧,也知道如果函数使用万能参数,你应该如何进行传参了把

今天被搞糊涂了,又把万能参数梳理一下

大家先看下这个函数

def foo(action=None,**kwargs):
    print("action",action,sep="=================>")
    print("kwargs", kwargs, sep="=================>")
 
d = {"a":1,"b":2}
 
 
foo(d)
print("=".center(100,"*"))
 
foo(**d)

我执行的结果如下
804d3f46-43e6-11ef-b8af-92fbcf53809c.png
下面我来解释一下

第一种调用函数的方式,传递了一个字典进去,这个字典会被当做一个整体传递进去,这个字典会被赋值给位置变了,也就是action

第二种调用函数的方法,通过**字典的方法传递进去,他实际是这样传递的a=1,b=2这样传递进去的,实际上一个命名变量,而这2个变量的名称都不action,所以第二中调用的方式的结果就是

action为none

kwargs就是一个字典

我们在看来下第三种调用的方法

d = {"action":"action","a":1}
foo(**d)

下面在看下结果,是否就明白了一些了

80694376-43e6-11ef-b8af-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4332

    浏览量

    62638
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84706

原文标题:python函数的万能参数

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    万能板的连线问题

    有哪位大虾有万能板的连线经验
    发表于 10-27 09:46

    电子万能试验机与液压万能试验机的区别

    提供的国内、国际标准定做各种试验数据处理软件和试验辅具。数字显示电子万能试验机适合于只求力值 抗拉强度 抗压强度等相关数据的用户。如需求取较为复杂参数,微机控制电子万能试验机是您更好的选择。从性价比
    发表于 07-04 16:06

    万能电池怎么使用?

    排线式万能电池由:通用规格的电芯,高质量柔性排线,接触点(多是三点接触点),附件(包括绝缘垫片,包装纸等)组成。
    发表于 10-21 09:02

    Labview【万能参数保存神器】

    还在为保存labview前面板中不同类型的参数而头痛吗?还在用LabVIEW自带的例程写ini文件吗?你OUT了,现在教大家一个懒人必备【万能参数保存神器】!从此以后,你可以和烦人的参数
    发表于 11-19 14:34

    怎样去设计基于STM32的红外万能遥控器

    连载目录:01、基于STM32的红外万能遥控器完整教程视情况更新。。。基于STM32的红外万能遥控器完整教程一、概述实现的功能参考文档二、项目的逻辑三、硬件主控模块接线方式四、代码结构Main函数
    发表于 08-16 06:49

    中星微万能驱动下载

    中星微万能驱动下载
    发表于 01-11 23:02 19次下载
    中星微<b class='flag-5'>万能</b>驱动下载

    winxp万能声卡驱动,程序下载

    winxp万能声卡驱动 尊敬的用户,本万能
    发表于 04-21 19:23 538次下载
    winxp<b class='flag-5'>万能</b>声卡驱动,程序下载

    万能遥控器设置方法_万能遥控器代码

    电视是每个家庭必不可少的家用电器,所以我们在使用遥控器的时间也会比较多。但如果遥控器换了怎么办,很多人都会想到配一个万能遥控器,那么万能遥控器怎么设置,它的万能
    发表于 09-14 18:08 18.8w次阅读
    <b class='flag-5'>万能</b>遥控器设置方法_<b class='flag-5'>万能</b>遥控器代码

    万能协议通信工具

    万能协议通信工具分享
    发表于 11-18 11:47 14次下载

    万能转换开关原理_万能转换开关结构

    本文首先阐述了万能转换开关原理,其次介绍了万能转换开关技术特点,最后介绍了万能转换开关结构。
    发表于 12-09 10:16 1w次阅读

    万能转换开关选型_万能转换开关使用

    本文主要介绍了万能转换开关选型方法及万能转换开关的使用。
    发表于 12-09 10:30 4347次阅读

    液晶彩电万能主板代换的方法分享

    首先根据所修液晶彩电的显示屏参数,LVDS接口选择合适的万能主板和LVDS连接线,如果对所选万能主板和连接线不熟悉,可将显示屏参数,LVDS接口情况通报给
    的头像 发表于 02-18 20:38 1.4w次阅读

    关于万能式断路器参数的确定

    万能式断路器的结构选定后,应选择万能式断路器的电气参数。所谓电气参数的确定,主要是指万能式断路器的额定电压、额定电流和通断能力,一个重要的问
    发表于 03-02 22:48 3675次阅读

    万能断路器参数如何设置

    万能断路器是一种广泛应用于电力系统、工业自动化和建筑电气领域的电气设备,其主要功能是在电路中起到过载、短路、欠压等保护作用。正确设置万能断路器参数对于确保设备安全运行和提高系统可靠性具有重要意义
    的头像 发表于 07-31 15:19 1956次阅读

    万能断路器参数设置的基本原则

    和发挥其保护作用,需要对其进行正确的参数设置。 一、万能断路器的基本知识 1.1 万能断路器的定义 万能断路器是一种具有多种保护功能的低压断路器,能够对电气设备和线路进行过载、短路、欠
    的头像 发表于 08-14 15:50 995次阅读