【发布时间】:2019-12-29 04:39:36
【问题描述】:
import hashlib
hash = hashlib.md5
我目前正在尝试了解为什么以下行有效:
hash(np.int64(identifier)).digest()
而这一行没有:
hash(identifier).digest()
这第二行基本上显示如下错误:object supporting the buffer API required
附带说明,identifier 变量是一个整数。据我所知,整数(Python中默认的整数)占用32位(或4字节),numpy的np.int64占用64位(或8字节)内存。
那么,为什么第一行有效而第二行无效?这是md5的要求吗?
【问题讨论】:
-
"据我所知,整数(Python 中的默认整数)占用 32 位(或 4 个字节)" 不,它们不是。 Python
int对象是,嗯,对象,就像 Python 中的所有东西一样,它们的底层表示是任意大小的,所以只要你有内存(和地址空间......),你的整数可以任意大。跨度>