В Python 2.6 (и ранее) встроенные функции hex() и oct() могут быть перегружены в классе, определяя специальные функции __hex__ и __oct__. Однако не существует специальной функции __bin__ для перегрузки поведения встроенной функции bin() новой функции bin() Python 2.6.
Я хочу знать, есть ли способ гибкой перегрузки 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'
Я подозреваю, что нет способа добиться этого, но я думал, что это не помешает спросить!