博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python函数参数前面单星号(*)和双星号(**)的区别
阅读量:6945 次
发布时间:2019-06-27

本文共 688 字,大约阅读时间需要 2 分钟。

在python的函数中经常能看到输入的参数前面有一个或者两个星号:例如

def foo(param1, *param2):def bar(param1, **param2):

这两种用法其实都是用来将任意个数的参数导入到python函数中。

单星号(*):*agrs

将所以参数以元组(tuple)的形式导入:
例如:

>>> def foo(param1, *param2):        print param1        print param2>>> foo(1,2,3,4,5)1(2, 3, 4, 5)

双星号(**):**kwargs

将参数以字典的形式导入

>>> def bar(param1, **param2):        print param1        print param2>>> bar(1,a=2,b=3)1{'a': 2, 'b': 3}

此外,单星号的另一个用法是解压参数列表:

>>> def foo(bar, lee):        print bar, lee>>> l = [1, 2]>>> foo(*l)1 2

当然这两个用法可以同时出现在一个函数中:例如

>>> def foo(a, b=10, *args, **kwargs):        print a        print b        print args        print kwargs>>> foo(1, 2, 3, 4, e=5, f=6, g=7)123 4{'e': 5, 'g': 7, 'f': 6}

参考资料:

转载地址:http://atanl.baihongyu.com/

你可能感兴趣的文章
gradle项目与maven项目相互转化(转)
查看>>
MAC下安装与配置MySQL
查看>>
linux系统的crond服务
查看>>
Restore Volume 操作 - 每天5分钟玩转 OpenStack(60)
查看>>
sqool导出oracle数据
查看>>
MyBatis动态传入表名,字段名参数的解决办法
查看>>
Windows平台下安装Hadoop
查看>>
oracle11gR2静默安装
查看>>
理解javascript中的浏览器窗口——窗口基本操作
查看>>
Directx11学习笔记【二十】 使用DirectX Tool Kit加载mesh
查看>>
【Linux】NAT模式下关于主机ping不通虚拟机的问题
查看>>
SpringMVC 参数注入
查看>>
mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行...
查看>>
atitit.attilax的软件 架构 理念.docx
查看>>
EF实体框架之CodeFirst四
查看>>
[Tex学习]WinEdit 常用软件快捷键
查看>>
二维码在短信业务应用的初步构思
查看>>
分布式服务器集群架构方案思考
查看>>
Graphviz使用简介(中文乱码的问题)
查看>>
Log4J使用
查看>>