相关疑难解决方法(0)

hash在python中做什么?

我看到了一个代码示例,其中hash函数应用于元组.结果它返回一个负整数.我想知道这个功能是做什么的.谷歌没有帮助.我找到了一个页面,解释了如何计算哈希,但它没有解释为什么我们需要这个函数.

python hash

64
推荐指数
2
解决办法
8万
查看次数

使用 lru_cache 和 __hash__ 缓存对象实例

我不明白如何functools.lru_cache处理对象实例。我假设该类必须提供一种__hash__方法。因此任何具有相同哈希值的实例都应该hit缓存。

这是我的测试:

from functools import lru_cache

class Query:    
    def __init__(self, id: str):
        self.id = id

    def __hash__(self):
        return hash(self.id)

@lru_cache()
def fetch_item(item):
    return 'data'

o1 = Query(33)
o2 = Query(33)
o3 = 33

assert hash(o1) == hash(o2) == hash(o3)

fetch_item(o1)  # <-- expecting miss
fetch_item(o1)  # <-- expecting hit
fetch_item(o2)  # <-- expecting hit BUT get a miss !
fetch_item(o3)  # <-- expecting hit BUT get a miss !
fetch_item(o3)  # <-- expecting hit …
Run Code Online (Sandbox Code Playgroud)

python caching functools

1
推荐指数
1
解决办法
4353
查看次数

标签 统计

python ×2

caching ×1

functools ×1

hash ×1