Python 'long' 对象没有属性 'to_bytes'?

标签 python long-integer

我正在尝试使用来自 here 的用 Python 编写的比特币地址验证器:

这段代码给我带来了麻烦:

def decode_base58(bc, length):
    n = 0
    for char in bc:
        n = n * 58 + digits58.index(char)
    return n.to_bytes(length, 'big')

我知道 n 是一个 int 或一个 long,但都没有名为 to_bytes 的方法,所以我真的不明白这段代码是如何工作的?

有人知道这里出了什么问题吗?我做错了什么,还是这段代码写错了?欢迎所有提示!

最佳答案

Python 2.7 intlong 没有 .to_bytes 方法。 Python 3.2 int.to_bytes 方法。

Python 2.x 的解决方法:

>>> length = 10
>>> n = 123456789
>>> ('%%0%dx' % (length << 1) % n).decode('hex')[-length:]
'\x00\x00\x00\x00\x00\x00\x07[\xcd\x15'

关于Python 'long' 对象没有属性 'to_bytes'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003021/

相关文章:

python - pyautogui.locateCenterOnScreen() 返回 None 而不是坐标

java - 是否有专门针对 BitSet 的哈希函数?

java - 为什么 double 可以比 long 存储更多的信息? (JAVA)

python - 在两个对象之间共享一个字符串

python - 如何将矩阵转换为 Pandas 数据框

c++ - 根据系统动态确定整数类型(c++)

python webbrowser.open 无法打开长网址

c - 在 C 中将 bitvector 声明为 longs 数组?

python - pyinstaller排除模块原因 "failed to execute script"

python - 从数据帧的一列中绘制 2 个变量