|
本帖最后由 whydo1 于 2016-10-11 19:51 编辑
请问输出的结果这个b'\x01\x00\x02\x00\x03\x00'长度是偶数还是奇数?
>>> 偶数 6
我的认识是num实参传给uncoding,那么这个实参要被转化成“H”型2个字节的python数据类型d,d又给dt,那dt肯定是偶数,if语句要不要还有什么用呢?
>>>unCoding返回的数字长度确实都是偶数. 但是传递给Coding函数的可以不是偶数. 上面的例子只是为了说明函数的作用和用法.
return(struct.unpack(str(dlen)+'H',data)) 中str(dlen)不是3吗,那就是(struct.unpack('3'+'H',data))这个参数调用和struct.pack('H',data)区别是什么呢?也就是unpack与pack的区别?
>>>pack和unpack函数用于将Python语言的数据和适合其他语言使用的数据进行相互转换. 比如象C这样的语言, 它的数据类型是有很多限制的.
>>>pack负责将Python语言的数据转换为类似C这样的语言可以接受的数据
>>>unpack负责将这类语言的数据转换为Python语言适用的数据
>>>理解一下下面的代码:
- dt = b'\x01\x02\x03'
- td = Coding(dt) # Coding使用unpack操作, 将两个字节再转换为一个字节
- print(td)
复制代码 |
|