gpt4 book ai didi

python-2.7 - hashlib 哈希器到底如何处理输入?

转载 作者:行者123 更新时间:2023-12-02 18:48:29 27 4
gpt4 key购买 nike

The Python 2.7 documentation关于 hashlib 哈希器有这样的说法:

hash.update(arg)

Update the hash object with the string arg. [...]

但我见过人们给它喂食不是字符串的物体,例如buffers , numpy ndarrays .

鉴于 Python 的鸭子类型,我对指定非字符串参数可能并不感到惊讶。

问题是:我如何知道哈希器正在使用参数做正确的事情

我无法想象哈希器天真地对参数进行浅层迭代,因为对于具有多个维度的 ndarray 来说,这可能会严重失败 - 如果你进行浅层迭代,你会得到一个具有 n-1 维度的 ndarray。

最佳答案

update使用 s# format spec 解压其参数。这意味着它可以是字符串、Unicode 或缓冲区接口(interface)

您无法定义a buffer interface在纯 Python 中,但像 numpy 这样的 C 库可以并且可以这样做 - 这允许它们被传递到 hash.update 中。

诸如多维数组之类的东西工作得很好 - 在 C 级别上,它们存储为一系列连续的字节。

关于python-2.7 - hashlib 哈希器到底如何处理输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com