Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Что выведет код?
Anonymous Quiz
16%
1
12%
20
59%
1024
13%
Ничего
​Декоратор cachedproperty

Декоратор cachedproperty модуля functools преобразует метод класса в свойство, значение которого вычисляется один раз, а затем кэшируется как обычный атрибут на время срока службы экземпляра класса.

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

Этот декоратор требует, чтобы атрибут dict в каждом экземпляре был изменяемым словарем. Это означает, что он не будет работать с некоторыми типами, такими как метаклассы и теми, которые указывают slots без включения dict в качестве одного из определенных слотов.
Что выведет код?
Anonymous Quiz
17%
1
26%
-2
10%
0
46%
Ошибку
Datetime

Datetime — важный элемент любой программы, написанной на Python. Этот модуль позволяет управлять датами и временем, представляя их в таком виде, в котором пользователи смогут их понимать.
Что выведет код выше?
Anonymous Quiz
48%
30
4%
5
32%
Ошибку
16%
1 True True True True True
Метод bin()

Метод bin() преобразует и возвращает двоичную эквивалентную строку заданного целого числа. Если параметр не является целым числом, он должен реализовать метод __index __(), чтобы вернуть целое число.

В нашем примере мы отправили объект класса Quantity методу bin().

bin() не вызывает ошибку, даже если объект Quantity не является целым числом. Это потому, что мы реализовали метод __index __(), который возвращает целое число (сумму количества фруктов).
Затем это целое число передается методу bin().
Класс memoryview()

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

Класс memoryview() обеспечивает прямой доступ для чтения и записи к байтово-ориентированным данным объекта без необходимости их предварительного копирования. Это приводит к значительному увеличению производительности при работе с большими объектами, такими как двоичные данные видео или изображения, поскольку создает другой объект доступа для изменения больших данных без их копирования.
Функция shuffle()

Функция shuffle() модуля random перемешивает изменяемую последовательность x на месте.
Функция ничего не возвращает, а изменяет непосредственно сам объект последовательности x.

Функция random.shuffle() способна работать только с изменяемыми последовательностями, такими как списки, т.е. получить перестановку из строки или кортежа не получится.
Что выведет код?
Anonymous Quiz
25%
8
32%
-1
15%
1
28%
Error
Библиотека pytube

pytube - это легкая библиотека Python без зависимостей, которая используется для загрузки видео из Интернета.

pytube не является собственной библиотекой. Вам необходимо установить его перед использованием.

В нашем коде мы скачиваем видео самого высокого разрешения.
Метод ast literal_eval

Мы можем преобразовать строку в целое число с помощью библиотечного метода ast literal_eval.

Этот метод преобразует строку в целое число, чтобы использовать метод hex() для преобразования строки в шестнадцатеричную строку. Но этот метод принимает только символы префикса 0x.