Функция bin в Python — зачастую под данной функцией возникает ошибочное мнение, что она предназначена для работы с бинарными файлами. На самом деле, функция bin(), возвращает двоичную строку целого числа. Если заданное число не является целым, необходимо использовать метод __index__() для возврата целого числа.
Принимаемые параметры метода bin()
- Число — двоичный эквивалент которого вернет нам наша функция. В случае если, параметр не является целым числом, то необходимо использовать метод __index__ для получения целого числа, а затем для получения его двоичного эквивалента.
Пример 1. Получение двоичного кода, эквивалентного целому числу, с применением метода __index__()
class Quantity:
apple = 1
orange = 2
grapes = 2
def __index__(self):
return self.apple + self.orange + self.grapes
print('Двоичный эквивалент числа равен:', bin(Quantity()))
#Результат:
Двоичный эквивалент числа равен: 0b101
В данном случае, мы передаем Quantity методу bin(). Метод bin() не вызовет ошибку даже в том случае,если число не будет целым. Такой результат связан с тем, что использовали метод __index__(), который вернет нам целое число, а затем это число передастся методу bin() и мы получим двоичный код.
Так же, в результате преобразование, вы видите что, присутствует префикс 0b. Это говорит нам о том, что результатом преобразования является двоичная строка.