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)