Python School
82.6K subscribers
2.39K photos
7 videos
566 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Обычные арифметические операторы (ч.4)

Класс Matrix реализует метод matmul(self, other), который определяет поведение оператора матричного умножения @.
В методе matmul, проверяется, что число столбцов первой матрицы равно числу строк второй матрицы, так как это условие необходимо для умножения матриц.
Затем создается результатирующая матрица и заполняется нулями.
Умножение матриц выполняется с помощью вложенных циклов.
Результат умножения возвращается в виде новой матрицы.
Этот лайфхак полезен для работы с линейной алгеброй и матричными операциями, где оператор @ позволяет интуитивно и легко выполнять умножение матриц, переопределяя метод matmul для пользовательских классов в Python.
Обычные арифметические операторы (ч.5)

Класс Rational реализует метод truediv(self, other), который определяет поведение оператора деления /.
В методе truediv, если операнд other также является объектом класса Rational, то выполняется деление дробей, умножая на обратную дробь.
Если операнд other является целым числом или числом с плавающей запятой, то знаменатель дроби умножается на это число.
Если операнд other не является ни Rational, ни числом, вызывается исключение TypeError.
Метод str позволяет выводить дробь в виде строки.
Этот лайфхак полезен при работе с дробями или другими типами данных, где определение операции деления имеет смысл. Переопределение метода truediv позволяет объекту поддерживать стандартную математическую операцию деления в Python.
Обычные арифметические операторы (ч.6)

Этот лайфхак полезен при работе с комплексными числами или другими типами данных, где определение операции целочисленного деления имеет смысл. Переопределение метода floordiv позволяет объекту поддерживать стандартную математическую операцию целочисленного деления в Python.
Обычные арифметические операторы (ч.7)

Этот лайфхак полезен при работе с комплексными числами или другими типами данных, где определение операции остатка от деления имеет смысл. Переопределение метода mod позволяет объекту поддерживать стандартную математическую операцию остатка от деления в Python.
Обычные арифметические операторы (ч.8)

Этот лайфхак полезен при работе с дробями или другими типами данных, где определение операций целочисленного деления и остатка имеет смысл. Переопределение метода divmod позволяет объекту поддерживать стандартную функцию divmod() в Python, возвращая частное и остаток от деления в виде кортежа.
Обычные арифметические операторы (ч.9)

Этот лайфхак полезен при работе с комплексными числами или другими типами данных, где определение операций возведения в степень и взятия по модулю имеет смысл. Переопределение метода pow позволяет объекту поддерживать стандартные операции возведения в степень и взятия по модулю в Python.
Обычные арифметические операторы (ч.10)

Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция сдвига влево имеет смысл. Переопределение метода lshift позволяет объекту поддерживать стандартную операцию сдвига влево в Python.
Обычные арифметические операторы (ч.11)

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

Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового И имеет смысл. Переопределение метода and позволяет объекту поддерживать стандартную операцию побитового И в Python.
Обычные арифметические операторы (ч.12)

Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового исключающего ИЛИ имеет смысл. Переопределение метода xor позволяет объекту поддерживать стандартную операцию побитового исключающего ИЛИ в Python.
Обычные арифметические операторы (ч.13)

Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового ИЛИ имеет смысл. Переопределение метода or позволяет объекту поддерживать стандартную операцию побитового ИЛИ в Python.
Использование defaultdict для работы со словарями

При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.

Использование defaultdict упрощает код и избавляет от необходимости вручную проверять существование ключей в словаре, делая его более читаемым и эффективным.
Расширение возможности сложения для пользовательских объектов

radd — это метод Python, который позволяет реализовать операцию сложения с обратным порядком операндов. Он вызывается, когда объект справа от оператора сложения не поддерживает соответствующий метод add.

Представьте, что у вас есть класс, который представляет пользовательские числа. Вы хотите, чтобы эти числа могли складываться с обычными числами Python (int, float) и другими экземплярами своего класса.

Этот подход позволяет сделать ваш класс более гибким и совместимым с различными типами данных, упрощая использование и повышая его удобство.
Расширение возможности вычитания для пользовательских объектов

Метод rsub в Python используется для реализации обратного вычитания, когда операнд слева не поддерживает соответствующий метод sub. Это позволяет определить, как ваш объект должен вычитаться из другого объекта.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать вычитание этих чисел как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции вычитания с различными типами данных, что повышает его гибкость и удобство использования.
Расширение возможности операции побитового "и" для пользовательских объектов

Метод rand в Python используется для реализации операции побитового "и" (оператора &), когда операнд слева не поддерживает соответствующий метод and. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать операцию побитового "и" с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские битовые данные, и мы хотим поддерживать операцию побитового "и" как с обычными числами Python (int), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживать операции побитового "и" с различными типами данных, что повышает его гибкость и удобство использования.
Расширение возможности битового сдвига вправо для пользовательских объектов

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

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать операцию битового сдвига вправо как с обычными числами Python (int), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции битового сдвига вправо с различными типами данных, что повышает его гибкость и удобство использования.
Расширение возможности битового сдвига влево для пользовательских объектов

Метод rlshift в Python используется для реализации обратного битового сдвига влево (оператора <<), когда операнд слева не поддерживает соответствующий метод lshift. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать битовый сдвиг влево с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать операцию битового сдвига влево как с обычными числами Python (int), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции битового сдвига влево с различными типами данных, что повышает его гибкость и удобство использования.
Расширение возможности возведения в степень для пользовательских объектов

Метод rpow в Python используется для реализации обратного возведения в степень (оператора **), когда операнд слева не поддерживает соответствующий метод pow. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать операцию возведения в степень с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать операцию возведения в степень как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции возведения в степень с различными типами данных, что повышает его гибкость и удобство использования.
Расширение возможности матричного умножения для пользовательских объектов

Метод rmatmul в Python используется для реализации обратного матричного умножения, когда операнд слева не поддерживает соответствующий метод matmul (оператор @). Этот метод особенно полезен для работы с матрицами или объектами, которые поддерживают матричное умножение.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские матрицы, и мы хотим поддерживать матричное умножение этих матриц как с обычными матрицами (списками списков), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции матричного умножения с различными типами данных, что повышает его гибкость и удобство использования.
Расширение возможности матричного умножения для пользовательских объектов

Метод rmatmul в Python используется для реализации обратного матричного умножения, когда операнд слева не поддерживает соответствующий метод matmul (оператор @). Этот метод особенно полезен для работы с матрицами или объектами, которые поддерживают матричное умножение.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские матрицы, и мы хотим поддерживать матричное умножение этих матриц как с обычными матрицами (списками списков), так и с другими экземплярами нашего класса.

Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции матричного умножения с различными типами данных, что повышает его гибкость и удобство использования.