gpt4 book ai didi

python - Python 文件对象上的 __hash__ 有什么作用?

转载 作者:行者123 更新时间:2023-11-28 21:20:23 24 4
gpt4 key购买 nike

<分区>

我注意到文件对象是可散列的,并且可以用作 Python 字典中的键,但我似乎无法弄清楚文件对象是如何散列的。这是否仅使用 inode 或类似的东西,具体取决于操作系统?

我试图查看 Python 2.7.6 源代码,但一无所获。看起来 Objects/fileobject.c 的 tp_hash 函数指针为 NULL。所以,我猜测文件对象搭载了一些默认的哈希函数。知道这是如何工作的吗?

旁注,我假设由于文件对象是可散列的,所以可以将它们用作字典键。有什么我没有看到的缺点吗?

这是一个证明“可哈希性”的例子:

In [1]: x = open('test.txt', 'r')

In [2]: x.__hash__
Out[2]: <method-wrapper '__hash__' of file object at 0x105760f60>

In [4]: hash(x)
Out[4]: 274161910

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