파이썬 2.6 (및 그 이전 버전)에서 및 __oct__
특수 기능을 정의하여 클래스에서 내장형 함수 hex()
및 oct()
을 오버로드 할 수 있습니다. 그러나 파이썬 2.6의 새로운 bin()
내장 함수의 동작을 오버로드하는 특수 함수는 __bin__
이 아닙니다.Python 2.6에서 bin()을 oct() 및 hex()처럼 오버로드 할 수 있습니까?
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'
나는이 달성의 방법이 없다고 생각하지만, 나는 그것을 물어 해치지 않을 것이라고 생각!
감사합니다. 알아두면 유용합니다. 나는 이미 원했던 형태로 출력물을 얻을 수 있었지만, bin 함수를 돌려받지 못했습니다. str.format 메서드는 내가 사용한 메서드보다 훨씬 간결합니다! –
참조 http://stackoverflow.com/questions/3258330/converting-from-hex-to-binary-without-losing-leading-0s-python – endolith