免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 24266 | 回复: 10
打印 上一主题 下一主题

Python中*args与**args的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-27 15:34 |只看该作者 |倒序浏览
请问一下,在Python语言中,像*args与**args这种,一个星号与两个星号有什么区别?谁能举例说明下?

论坛徽章:
0
2 [报告]
发表于 2011-07-27 16:57 |只看该作者
  1. def test_param(*args):
  2.     print args

  3. def test_param_2(**args):
  4.     print args

  5. test_param('test1', 'test2')
  6. test_param_2(p1='test1', p2='test2')
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-07-27 17:42 |只看该作者
python提供了两种特别的方法来定义函数的参数:

1. 位置参数 *args,  把参数收集到一个元组中,作为变量args
  def show_args(*args):   =>  how_args("hello", "world")

2. 关键字参数 **kwargs, 是一个正常的python字典类型,包含参数名和值
  def show_kwargs(**args):  = > show_kwargs(foo="bar", spam="eggs")

论坛徽章:
0
4 [报告]
发表于 2011-07-27 17:54 |只看该作者
**是字典
*是元组

论坛徽章:
0
5 [报告]
发表于 2011-07-27 18:43 |只看该作者
回复 3# 南国书生


    这个解释好。

论坛徽章:
0
6 [报告]
发表于 2011-07-27 21:53 |只看该作者
这个是在网上看到的,对 *args 和 **args 解释比较详尽。


Passing arguments to Python functions1.pdf (218.57 KB, 下载次数: 1756)

论坛徽章:
0
7 [报告]
发表于 2011-07-27 22:54 |只看该作者
谢谢各位,回答的都很经典!

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
8 [报告]
发表于 2011-07-29 23:33 |只看该作者
应该和c的区别差不多吧。

论坛徽章:
0
9 [报告]
发表于 2011-07-31 15:59 |只看该作者
一个是倒垃圾一个是收垃圾,china unix第一次回帖,就这么不文明(笑

论坛徽章:
0
10 [报告]
发表于 2013-12-29 10:06 |只看该作者
回复 6# pytoon


    上传的pdf非常好,搞清了python 的函数的参数传递。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP