cython
1# mode: run
2# ticket: t326
3# tag: hash
4
5
6cdef class A:
7"""
8>>> hash(A(5))
95
10>>> hash(A(-1))
11-2
12>>> hash(A(-2))
13-2
14>>> hash(A(100))
15Traceback (most recent call last):
16...
17TypeError: That's kind of a round number...
18"""
19cdef long a
20def __init__(self, a):
21self.a = a
22def __hash__(self):
23if self.a == 100:
24raise TypeError, u"That's kind of a round number..."
25else:
26return self.a
27
28
29cpdef long __hash__(long x):
30"""
31>>> __hash__(-1)
32-1
33"""
34return x
35