Python 2.6 (およびそれ以前) では、組み込み関数hex()
および組み込み関数は、および特別な関数oct()
を定義することによって、クラスでオーバーロードできます。ただし、Python 2.6 の新しい組み込み関数の動作をオーバーロードするための特別な関数はありません。__hex__
__oct__
__bin__
bin()
を柔軟にオーバーロードする方法があるかどうかを知りたいのですがbin()
、そうでない場合は、なぜ一貫性のないインターフェースなのか疑問に思っていましたか?
特殊関数を使用できることは知ってい__index__
ますが、整数しか返せないため、これは柔軟ではありません。私の特定の使用例は、先行ゼロビットが重要と見なされるbitstringモジュールからのものです。
>>> a = BitString(length=12) # Twelve zero bits
>>> hex(a)
'0x000'
>>> oct(a)
'0o0000'
>>> bin(a)
'0b0' <------ I want it to output '0b000000000000'
これを達成する方法はないと思いますが、質問しても問題ないと思いました。