优化3d点哈希函数

Col*_*lin 2 python optimization hash

我有一个三维点类,根据探查器,它的哈希函数是进行一些优化的好地方.现在,我只是将坐标的元组传递给内置的哈希函数:

def __hash__(self):
        return hash((self.x, self.y, self.z))
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它更快?我假设每次构建一个元组都不好.坐标是实值的.

小智 5

使用元组而不是自己的类会更快.

如果你真的想写px而不是p [0]那么你可以使你的类成为元组的子类并具有访问器.它仍然比实现自己的元组快得多.

class Point3d(tuple):
    @property
    def x(self):
        return self[0]

    @property
    def y(self):
        return self[1]

    @property
    def z(self):
        return self[2]
Run Code Online (Sandbox Code Playgroud)