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