Курс Python → Переопределение метода __rshift__

Для того чтобы использовать операцию сдвига вправо для объекта в Python, необходимо переопределить метод rshift. Это может быть полезно, например, при работе с бинарными числами или другими типами данных, где операция сдвига вправо имеет смысл.

Метод rshift переопределяется в классе объекта, который вы хотите использовать со сдвигом вправо. Для этого нужно определить специальный метод __rshift__. Этот метод принимает два аргумента: объект, который будет сдвигаться, и количество позиций, на которое нужно сдвинуть.


class MyClass:
    def __rshift__(self, n):
        # реализация операции сдвига вправо
        pass

После того как вы переопределили метод __rshift__ в своем классе, вы сможете использовать операцию сдвига вправо для объектов этого класса. Например:


obj1 = MyClass()
result = obj1 >> 2

В данном примере объект obj1 будет сдвинут вправо на 2 позиции. Таким образом, переопределение метода __rshift__ позволяет объекту поддерживать стандартную операцию сдвига вправо в Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Модуль inspect
  2. Именование столбцов в Python с pandas
  3. Метод get для словарей
  4. Работа с NumPy.linalg
  5. Работа с файлами и директориями в Python.
  6. Преобразование многоуровневого словаря
  7. Декораторы с @wraps
  8. Ветвление выражения в Python
  9. Отслеживание прогресса с tqdm
  10. Блок else в обработке исключений
  11. Функция zip() — объединение последовательностей
  12. Оператор объединения словарей
  13. Генераторы в Python
  14. Разница между датами
  15. Оператор Walrus: правильное использование
  16. Метод pos в Python
  17. Декораторы в Python
  18. Удаление пробелов методом translate()
  19. Методы split() и join() — Python строк.
  20. Управление контекстом выполнения кода
  21. Метод join() для объединения элементов
  22. Метод clear для коллекций
  23. Классы данных в Python
  24. Метод classmethod
  25. Транспонирование 2D-массива с помощью zip
  26. Сортировка и обратный порядок
  27. Создание функций с произвольным количеством аргументов
  28. Блок try…finally в Python
  29. Замена подстроки
  30. F-строки в Python
  31. Модуль pprint: улучшение вывода данных
  32. Оператор == в Python
  33. Объединение итераторов
  34. Работа с Enum в Python3.
  35. Синхронизация потоков с time.sleep()
  36. ChainMap.new_child() — добавление нового словаря
  37. Методы shutil для работы с файлами
  38. Равенство и идентичность в Python
  39. Форматирование строк в Python.
  40. Вычисление логарифмов в Python
  41. Вызов функций по строке в Python.
  42. Анализ кода — Python
  43. Избегайте пустого списка
  44. Преобразование документов в PDF с помощью Spire.Office
  45. Список методов и атрибутов
  46. Декораторы для регистрации функций

Marketello читают маркетологи из крутых компаний