Just Python
10.2K subscribers
4.39K photos
11 videos
4.38K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Расширение возможности вычитания для пользовательских объектов

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

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

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

#theory // just python | ChatGPT
Расширение возможности операции побитового "и" для пользовательских объектов

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

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

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

#theory // just python | ChatGPT
Расширение возможности матричного умножения для пользовательских объектов

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

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

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

#theory // just python | ChatGPT
Расширение возможности битового сдвига вправо для пользовательских объектов

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

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

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

#theory // just python | ChatGPT
Расширение возможности возведения в степень для пользовательских объектов

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

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

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

#theory // just python | ChatGPT
Расширение возможности битового сдвига влево для пользовательских объектов

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

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

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

#theory // just python | ChatGPT
Строки в тройных кавычках

Python поддерживает неявную конкатенацию строковых литералов.

''' и """ также являются разделителями строк в Python, которые вызывают ошибку SyntaxError, потому что интерпретатор Python ожидал, что в качестве разделителя будет заключена тройная кавычка при сканировании текущего строкового литерала в тройных кавычках.

#theory // Just Python
Использование метода __round__(self[, ndigits])

Метод round(self[, ndigits]) в Python позволяет определить пользовательское поведение округления объекта до заданного количества знаков после запятой. Этот метод полезен для пользовательских классов, когда требуется точное управление процессом округления данных.

Метод round является специальным методом, который вызывается при использовании встроенной функции round() для объекта. Он может принимать необязательный аргумент ndigits, который указывает количество знаков после запятой до которого нужно округлить объект.

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

#theory // Just Python
Использование метода __index__(self)

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

Метод index является специальным методом, который вызывается при использовании объекта в контексте, где ожидается целочисленный индекс, например, при индексации списка или кортежа. Он должен возвращать целое число, которое представляет объект в качестве индекса.

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

#theory // Just Python
Все циклы for в Python используют итераторы

В Python нет циклов for в стиле C. А циклы for в Python-стиле напоминают циклы for each в других языках. Это тип цикла, в котором используются итераторы. То есть каждый цикл for, который вы пишете на Python, должен использовать итератор.

Если вы внимательно посмотрите на пример на JavaScript, вы увидите, что мы сообщаем циклу, когда нужно завершить (i < numbers.length), а также — как инкременировать (i++).

#theory // Just Python
Использование метода __float__(self)

Метод float(self) в Python позволяет определить пользовательское преобразование объекта в число с плавающей точкой (float). Этот метод полезен для пользовательских классов, которые хотят представить свои данные в формате числа с плавающей точкой.

Метод float является специальным методом, который вызывается при использовании встроенной функции float() для объекта. Он должен возвращать число с плавающей точкой, представляющее объект.

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

#theory // Just Python
🤬🤬🤬 Война идёт между банками, а страдают обычные люди

Хорошая новость — внимательные клиенты могут оказаться в жирном плюсе:

— Получить 15.000 просто за регистрацию в приложении банка

— Ставка 5% годовых на кредит (да в 2024)

— Кешбэк до 80% на ВСЕ виды товаров

— Вклад под 20% с возможностью снятия наличных


Забить на эти предложения = выстрелить себе в ногу.

Пользуйтесь, пока лавочку не прикрыли: @etogrаbezh
Использование метода __int__(self)

Метод int(self) в Python позволяет определить пользовательское преобразование объекта в целое число. Этот метод полезен для пользовательских классов, которые хотят определить способ преобразования своих данных в целочисленный формат.

Метод int является специальным методом, который вызывается при использовании встроенной функции int() для объекта. Он должен возвращать целое число, представляющее объект.

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

#theory // Just Python
Почему при получаем исключение UnboundLocalError, хотя переменная имеет значение?

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

Когда последняя инструкция в foo присваивает новое значение переменной x, компилятор решает, что это локальная переменная. Следовательно, когда более ранний print пытается напечатать неинициализированную переменную, возникает ошибка.

#theory // Just Python
Использование метода __complex__(self)

Метод complex(self) в Python позволяет определить пользовательское поведение при преобразовании объекта в комплексное число. Этот метод полезен для пользовательских классов, которые хотят представлять свои данные в комплексной форме.

Метод complex является специальным методом, который вызывается при использовании встроенной функции complex() для объекта. Он должен возвращать комплексное число, которое представляет объект в контексте комплексных чисел.

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

#theory // Just Python
Эффективное использование метода ior(self, other)

Метод ior(self, other) в Python позволяет определить поведение оператора побитового ИЛИ с присваиванием (|=) для пользовательских классов. Этот метод полезен для выполнения битовых операций над данными, которые хранятся в пользовательских объектах.

Метод ior является специальным методом, который позволяет реализовать операцию побитового ИЛИ с присваиванием. Когда оператор |= применяется к объекту, Python вызывает этот метод, позволяя изменить объект на месте в соответствии с результатом операции.

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

#theory // Just Python
Какие правила для глобальных и локальных переменных в Python

В Python, переменные, на которые только ссылаются внутри функции, считаются глобальными. Если переменной присваивается новое значение где-либо в теле функции, считается, что она локальная, и, если вам нужно, то нужно явно указывать её глобальной.

#theory // Just Python
Эффективное использование метода irshift(self, other)

Мет
од irshift(self, other) в Python позволяет определить поведение оператора побитового сдвига вправо с присваиванием (>>=) для пользовательских классов. Этот метод полезен для работы с битовыми операциями и манипуляциями с данными, которые требуют эффективного изменения битовых представлений.

Метод irshift является специальным методом, который позволяет реализовать операцию побитового сдвига вправо с присваиванием. Когда оператор >>= применяется к объекту, Python вызывает этот метод, позволяя изменить объект на месте в соответствии с результатом сдвига.

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

#theory // Just Python
Эффективное использование метода __ixor__(self, other)

Метод ixor(self, other) в Python позволяет определить поведение оператора побитового исключающего ИЛИ с присваиванием (^=) для пользовательских классов. Этот метод полезен для выполнения битовых операций над данными, которые хранятся в пользовательских объектах.

Метод ixor является специальным методом, который позволяет реализовать операцию побитового исключающего ИЛИ с присваиванием. Когда оператор ^= применяется к объекту, Python вызывает этот метод, позволяя изменить объект на месте в соответствии с результатом операции.

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

#theory // Just Python
Почему анонимные функции (lambda), определенные в цикле с разными значениями, возвращают один и тот же результат

Это случается, поскольку x не является локальной для lambda, а определена во внешней области видимости, и получается тогда, когда она вызывается - а не когда определяется.

В конце цикла, x=4, поэтому все функции возвращают 4**2, то есть 16. Это можно также проверить, изменив значение x и посмотрев на результат.

#theory // Just Python