| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # test builtin hash function
- print(hash(False))
- print(hash(True))
- print({():1}) # hash tuple
- print({(1,):1}) # hash non-empty tuple
- print(hash in {hash:1}) # hash function
- try:
- hash([])
- except TypeError:
- print("TypeError")
- class A:
- def __hash__(self):
- return 123
- def __repr__(self):
- return "a instance"
- print(hash(A()))
- print({A():1})
- # all user-classes have default __hash__
- class B:
- pass
- hash(B())
- # if __eq__ is defined then default __hash__ is not used
- class C:
- def __eq__(self, another):
- return True
- try:
- hash(C())
- except TypeError:
- print("TypeError")
- # __hash__ must return an int
- class D:
- def __hash__(self):
- return None
- try:
- hash(D())
- except TypeError:
- print("TypeError")
- # __hash__ returning a bool should be converted to an int
- class E:
- def __hash__(self):
- return True
- print(hash(E()))
|