Rev | Line | |
---|
[314] | 1 | from typing import TypeVar, Generic
|
---|
| 2 |
|
---|
| 3 | T1 = TypeVar('T1')
|
---|
| 4 | T2 = TypeVar('T2')
|
---|
| 5 |
|
---|
| 6 |
|
---|
| 7 | class Tuple(Generic[T1,T2]):
|
---|
| 8 | '''
|
---|
| 9 | tuple with two elements of different types. Immutable
|
---|
| 10 | @param <T1> type of the first element of the tuple
|
---|
| 11 | @param <T2> type of the second element of the tuple
|
---|
| 12 | '''
|
---|
| 13 |
|
---|
| 14 | def __init__(self, element1:T1 , element2:T2 ):
|
---|
| 15 | self._element1 = element1
|
---|
| 16 | self._element2 = element2
|
---|
| 17 |
|
---|
| 18 | def get1(self) -> T1:
|
---|
| 19 | return self._element1
|
---|
| 20 |
|
---|
| 21 | def get2(self)->T2 :
|
---|
| 22 | return self._element2
|
---|
| 23 |
|
---|
| 24 | def __repr__(self)->str:
|
---|
| 25 | return "<" + str(self._element1) + "," + str(self._element2) + ">"
|
---|
| 26 |
|
---|
| 27 | def __hash__(self):
|
---|
| 28 | return hash((self._element1, self._element2))
|
---|
| 29 |
|
---|
| 30 | def __eq__(self, other):
|
---|
| 31 | return isinstance(other, self.__class__) \
|
---|
| 32 | and self._element1==other._element1\
|
---|
| 33 | and self._element2==other._element2
|
---|
Note:
See
TracBrowser
for help on using the repository browser.