¿Se puede sobrecargar bin () como oct () y hex () en Python 2.6?
En Python 2.6 (y anteriormente) elhex()
yoct()
Las funciones incorporadas se pueden sobrecargar en una clase definiendo__hex__
y__oct__
funciones especiales. Sin embargo no hay una__bin__
Función especial para sobrecargar el comportamiento de los nuevos Python 2.6.bin()
Función incorporada.
Quiero saber si hay alguna forma de sobrecarga flexiblebin()
, y si no me preguntaba por qué la interfaz inconsistente?
Yo sé que el__index__
se puede usar una función especial, pero esto no es flexible ya que solo puede devolver un número entero. Mi caso de uso particular es delcadena de bits Módulo, donde los bits de cero iniciales se consideran 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>
Sospecho que no hay forma de lograr esto, ¡pero pensé que no estaría mal preguntar!