相关疑难解决方法(0)

什么时候使用hash()调用__eq__?

这里提到的,

下面的代码,

class Person(object):
     def __init__(self, name, ssn, address):
         self.name = name
         self.ssn = ssn
         self.address = address
     def __hash__(self):
         print('in hash')
         return hash(self.ssn)
     def __eq__(self, other):
         print('in eq')
         return self.ssn == other.ssn

bob = Person('bob', '1111-222-333', None)

jim = Person('jim bo', '1111-222-333', 'sf bay area')


dmv_appointments = {}
print('calling hash')
dmv_appointments[bob] = 'tomorrow'
print('calling hash')
print(dmv_appointments[jim])
print('calling hash again')
print(dmv_appointments[bob])
Run Code Online (Sandbox Code Playgroud)

输出:

calling hash
in hash
calling hash
in hash
in eq
tomorrow
calling hash again
in hash …
Run Code Online (Sandbox Code Playgroud)

python hash dictionary

6
推荐指数
2
解决办法
382
查看次数

标签 统计

dictionary ×1

hash ×1

python ×1