Pode bin () ser sobrecarregado como oct () e hex () no Python 2.6?

No Python 2.6 (e anterior) ohex() eoct() funções embutidas podem ser sobrecarregadas em uma classe definindo__hex__ e__oct__ funções especiais. No entanto, não existe__bin__ função especial para sobrecarregar o comportamento do novo Python 2.6bin() função embutida.

Eu quero saber se existe alguma maneira de sobrecarregar de forma flexívelbin(), e se não, eu estava me perguntando por que a interface inconsistente?

Eu sei que o__index__ função especial pode ser usada, mas isso não é flexível, pois só pode retornar um inteiro. Meu caso de uso particular é dobitstring módulo, onde os bits zero iniciais são considerados significativos:

<code>>>> a = BitString(length=12)       # Twelve zero bits
>>> hex(a)
'0x000'
>>> oct(a)
'0o0000'
>>> bin(a)
'0b0' <------ I want it to output '0b000000000000'
</code>

Eu suspeito que não há como conseguir isso, mas achei que não faria mal perguntar!

questionAnswers(4)

yourAnswerToTheQuestion