社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python:为什么散列函数不是确定性的?

claudioz • 5 年前 • 1612 次点击  

我正在开发一个程序 蟒蛇3.6 我有一个问题:如果我使用确定性 hash 函数(来自语言的标准库)在同一个对象上,导致输出的字符串(运行后)在某些运行中是不同的! 例如:

class Generic:
    def __init__(self, id, name, property):
        self.id = id 
        self.name = name
        self.property = property


def main():
    my_object = Generic(3,'ddkdjsdk','casualstring')    
    print(hash(my_object))

我希望输出始终相同(确定性),但不幸的是,控制台上出现了不同的字符串: 8765256330262、-922336326451786864、-9223363262437648366及其他。。。 为什么会这样?我想在我的应用程序中保证这个函数的决定论!我该如何解决这个问题?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50903
 
1612 次点击  
文章 [ 1 ]  |  最新文章 5 年前