免费注册 查看新帖 |

Chinaunix

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

ans = add/sub(*nums) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-19 02:07 |只看该作者 |倒序浏览
Help on built-in function add in module operator:
add(...)    add(a, b) -- Same as a + b.(END)
python容许程序员执行一个没有显式定义参数的函数,相应的方法就是通过一个元组(非关键字参数)或字典(关键字参数)作为参数组传递给参数。基本上,可以将所有参数放进一个元组或字典中,仅仅用这些装有参数的容器来调用一个函数,而不必显式地把它们放在函数调用中:  func(*tuple_grp_nonkw_args,**dict_grp_kw_args)完整的带有形参的语法为:func(positional_args,keyword_args,*tuple_grp_nonkw_args,**dict_grp_kw_args)有了上面的解释,我们就可以准确的理解程序中出现的 ans = ops[op](*nums)nums是经过排序的两个数字,ops是一个字典,[op]是返回一个预定义过的+-*/符号中的一个,那么ops[op]联合使用就是找出字典中label所对应的vaule.这条语句经过翻译解释后,应是这样的: ans = nums[0] add/sub nums[1].这样理解了之后,我们验证一下,那就是我们将随机数增加到3个,显然这条语句已经不能满足需求,我们把它这种隐式的写法更改为:(注:其实我们仍然可以*nums元组来表示参数,但是局限在于opt[op]不接受不是2个的参数,所以退而求其次,放弃这种可变长度参数的隐式写法)[color="#000102"]
[color="#000102"]那么ans = ops[op](*nums) 相当于 ans = add/sub(*nums)[color="#000102"]*nums不解
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93014/showart_2152573.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP