Можно ли перегрузить bin () как oct () и hex () в Python 2.6?

В Python 2.6 (и ранее)hex() а такжеoct() встроенные функции могут быть перегружены в классе, определяя__hex__ а также__oct__ специальные функции. Однако нет__bin__ специальная функция для перегрузки поведения в Python 2.6bin() встроенная функция.

Я хочу знать, есть ли способ гибкой перегрузкиbin(), а если нет, мне было интересно, почему противоречивый интерфейс?

Я знаю, что__index__ Можно использовать специальную функцию, но она не является гибкой, поскольку может возвращать только целое число. Мой конкретный случай использования отбитовая модуль, в котором начальные нулевые биты считаются значимыми:

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

Я подозреваю, что нет способа достичь этого, но я подумал, что не мешало бы спросить!

Ответы на вопрос(4)

Ваш ответ на вопрос