В данной статье мы рассмотрим функцию Python hex().
Эта функция полезна, если вы хотите преобразовать целое число в шестнадцатеричную строку с префиксом “0x”.
Давайте разберемся, как можно использовать эту функцию.
Использование функции Python hex()
Функция Python hex() имеет очень простой синтаксис:
hex_string = hex(val)
Здесь val может быть целым, двоичным, восьмеричным или шестнадцатеричным числом.
Давайте быстро рассмотрим несколько примеров.
print(hex(1000)) # decimal print(hex(0b111)) # binary print(hex(0o77)) # octal print(hex(0XFF)) # hexadecimal
Выход
0x3e8 0x7 0x3f 0xff
Использование функции Python hex() на пользовательском объекте
Мы также можем использовать hex() на пользовательском объекте. Но если мы хотим использовать его успешно, мы должны определить метод __index__() для нашего класса.
Метод hex() будет вызывать __index__(), поэтому мы должны реализовать его. Он должен возвращать значение, которое может быть десятичным / двоичным / восьмеричным / шестнадцатеричным числом.
class MyClass: def __init__(self, value): self.value = value def __index__(self): print('__index__() dunder method called') return self.value my_obj = MyClass(255) print(hex(my_obj))
Выход
__index__() dunder method called 0xff
и действительно, как вы можете видеть, она возвращает то, что мы ожидали.
Сначала hex() вызывает метод __index__() нашего пользовательского класса.
Затем она преобразует возвращаемое значение в шестнадцатеричную строку (255 -> “0xff”).
Заключение
В этой статье мы узнали об использовании функции hex() для преобразования числовых значений в шестнадцатеричную строку.
Оригинал: “https://www.askpython.com/python/built-in-methods/python-hex-function”