免费注册 查看新帖 |

Chinaunix

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

高手请帮忙修正一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-03 11:09 |只看该作者 |倒序浏览
buf = struct.pack('48B', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
这样是没有问题,请问怎么修正一下,可以省掉后面一大串0?

论坛徽章:
0
2 [报告]
发表于 2009-09-03 11:38 |只看该作者
struct.pack('2B',*[0]*2)

论坛徽章:
0
3 [报告]
发表于 2009-09-03 12:29 |只看该作者
原帖由 bohemia 于 2009-9-3 11:38 发表
struct.pack('2B',*[0]*2)


这个不错,非常感谢!刚学python几天,C/C++的数据结构和python之间转换不太熟!

论坛徽章:
0
4 [报告]
发表于 2009-09-03 14:44 |只看该作者
请问2楼那个 *[0]是什么意思?是将[0,0]拆分成0,0吗?

论坛徽章:
0
5 [报告]
发表于 2009-09-03 15:42 |只看该作者
原帖由 thsniperwolf 于 2009-9-3 14:44 发表
请问2楼那个 *[0]是什么意思?是将[0,0]拆分成0,0吗?



>>> buf = struct.pack('48B', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
>>> buf
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> buf = struct.pack('48B',*[0]*48)
>>> buf
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>>


*[0]*48
第一个*表示参数个数不确定,第二个*是list乘法

论坛徽章:
0
6 [报告]
发表于 2009-09-03 17:33 |只看该作者

回复 #5 wolfg 的帖子

十分感谢,我就第一个*不明白。现在知道它意思了,但是还是有点不明白,既然是表示参数个数不确定,为什么后面又要匹配确切的48呢(乘4,[0]*48就是[0,0,0,0.........]   将这个[0,0,0....]当成value传进去肯定不对,但是为什么加一个参数个数不确定就对了呢?  *[0,0,0,0......]等价于一个什么样的表达式呢?
恳请指教

论坛徽章:
0
7 [报告]
发表于 2009-09-03 18:16 |只看该作者
原帖由 thsniperwolf 于 2009-9-3 17:33 发表
十分感谢,我就第一个*不明白。现在知道它意思了,但是还是有点不明白,既然是表示参数个数不确定,为什么后面又要匹配确切的48呢(乘4,[0]*48就是[0,0,0,0.........]   将这个[0,0,0....]当成value传进去肯定 ...


对于 方法调用, 前面添加*. 后面必须跟随sequence类型对象, 参数会被解析成数据传递到参数内容,
比如:

a = [1,2,3]
test(*a)

相当于
test(1,2,3)


详细说明,可参阅 Python Documentation   5.3.4 Calls  章节.

[ 本帖最后由 bohemia 于 2009-9-3 18:18 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-09-03 22:50 |只看该作者

回复 #7 bohemia 的帖子

正解 :wink:

论坛徽章:
0
9 [报告]
发表于 2009-09-04 09:40 |只看该作者

回复 #7 bohemia 的帖子

谢谢楼上两位

论坛徽章:
0
10 [报告]
发表于 2009-09-04 10:59 |只看该作者
领教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP