I've inherited from int, because I wanted to implement a simple interface for bitwise operations. Due to the non mutability of int, I have to use the integer member functions like int.__and__
, ... .
class Bitset(int)
...
def __setitem__(self, index, value):
if value:
self.__ior__(1 << int(index))
else:
self.__iand__(~(1 << int(index)))
In one of my memberfunctions I want to use the |=
and &=
functions, but the integer has no __ior__
and __iand__
member functions. So my question is how can I solve this problem?.
Edit:
I dont want to simplify binary operations, I'd like to manipulate the bits of an integer. E.g.
a = Bitset(0)
a[0]
>>>0
a[0] = 1
a[0]
>>>1
But I didn't wan't to reimplement every integer operation, which should still work as well. If I wrap an internal integer I've got to do that. E.g
a = Bitset(0)
a += 1
should still work.