В 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'
Я подозреваю, что нет способа добиться этого, но я думал, что это не помешает спросить!