Czy bin () może być przeciążony, jak oct () i hex () w Pythonie 2.6?
W Pythonie 2.6 (i wcześniejszym)hex()
ioct()
wbudowane funkcje mogą być przeciążone w klasie poprzez zdefiniowanie__hex__
i__oct__
funkcje specjalne. Nie ma jednak__bin__
specjalna funkcja do przeciążania zachowania nowego Pythona 2.6bin()
wbudowana funkcja.
Chcę wiedzieć, czy istnieje jakiś sposób elastycznego przeładowaniabin()
, a jeśli nie, zastanawiałem się, dlaczego niespójny interfejs?
Wiem, że__index__
można użyć funkcji specjalnej, ale nie jest to elastyczne, ponieważ może zwrócić tylko liczbę całkowitą. Mój szczególny przypadek użycia pochodzi złańcuch bitów moduł, w którym wiodące bity zerowe są uważane za znaczące:
<code>>>> a = BitString(length=12) # Twelve zero bits >>> hex(a) '0x000' >>> oct(a) '0o0000' >>> bin(a) '0b0' <------ I want it to output '0b000000000000' </code>
Podejrzewam, że nie ma sposobu, aby to osiągnąć, ale pomyślałem, że nie zaszkodzi zapytać!