Python で 2D ビット マップ クラスを実装したいと考えています。クラスには次の要件があります。
任意のサイズの 2D ビットマップの作成を許可します。つまり、次のような 8 x 8 ビットマップ (8 バイト) を作成します。
bitmap = Bitmap(8,8)
この 2 次元マップのビットにブール値または整数値としてアクセスするための API を提供します。
if bitmap[1, 2] or bitmap.get(0, 1)
データをパックされたバイナリ データとして取得できます。基本的には、ビット マップの各行が連結され、バイナリ データとして返されます。最も近いバイトまたは同様のものにパディングされる場合があります。
bitmap.data()
取得したバイナリ データから新しいマップを作成できる:
new_bitmap = Bitmap(8, 8, bitmap.data())
Python が二項演算を実行できることは知っていますが、このクラスを実装するためにそれらを使用する最善の方法についていくつか提案をお願いします。