python-reedsolo.py-pycharm中与命令行中对同一函数返回值不同

这个问题挺奇葩的。

当时项目里用到 Reed Solomon ,用法参考我写的:python-reedsolomon实际应用

我的环境是:

  • reedsolo 1.5.4
  • Python 3.7.5
  • PyCharm 2019.2.6(Community Edition)

pycharm和命令行里的python环境是我在anaconda里搞的同一个虚拟环境。可对于decode()函数,二者的返回值却不一样。

from reedsolo import RSCodec

def decode(necc, data):
    rsd = RSCodec(necc)
    data = rsd.decode(data)
    print(type(data))
    print(data)
    
necc = 8
data = [64, 131, 19, 35, 54, 134, 86, 198, 198, 240, 203, 150, 203, 150, 203, 128, 241, 181, 167, 50, 218, 244, 35, 100]
decode(necc, data)

'''pycharm-Run模式输出:
<class 'bytearray'>
bytearray(b'@\x83\x13#6\x86V\xc6\xc6\xf0\xcb\x96\xcb\x96\xcb\x96')
'''

'''cmd/Pycharm-Terminal输出:
<class 'tuple'>
(bytearray(b'@\x83\x13#6\x86V\xc6\xc6\xf0\xcb\x96\xcb\x96\xcb\x96'), bytearray(b'@\x83\x13#6\x86V\xc6\xc6\xf0\xcb\x96\xcb\x96\xcb\x96\xf1\xb5\xa72\xda\xf4#d'), bytearray(b'\x0f'))
'''

实际用于解码的值,其实是第一个,所以如果返回tuple,取第一个就好了。不过还是有一点点奇怪的。

升级pycharm到最新版还是一样。

我后来把reedsolo.py拷贝到当前目录、改名引用后,二者输出又是一致的了。

查看源代码,decode函数确实要返回tuple才对啊:
在这里插入图片描述
目前只是记录一下,希望之后我能找到原因T_T

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值