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
DataFrame

Объект DataFrame лучше всего представлять себе в виде обычной таблицы и это правильно, ведь DataFrame является табличной структурой данных. В любой таблице всегда присутствуют строки и столбцы. Столбцами в объекте DataFrame выступают объекты Series, строки которых являются их непосредственными элементами.

#2(DataFrame)
Модуль threading

Python включает в себя ряд разных параллельных конструкций, таких как как threading, queues и multiprocessing. Модуль threading использовался как главный способ достижения параллельности.

В нашем коде мы импортировали модули random и time, также мы импортировали класс Thread из модуля threading Python. Далее, мы наследуем класс Thread, и переопределили его метод init для принятия аргумента, под названием name. Для начала потока, вам нужно вызывать метод start().

После запуска потока, он автоматически вызовет метод run. Мы переопределили метод run таким образом, чтобы он выбирал случайный отсчет времени для «сна». Пример random.randint указывает Python выбрать случайное число от 3 до 15. После этого мы указываем потоку «спать» столько секунд, сколько было выбрано случайным способом, для симуляции его настоящей работы. Далее мы ввели имя потока, чтобы сказать пользователю, что он закончился. Функция create_threads создаст 5 потоков, дав каждому из них уникальное имя.
Библиотека math

Библиотека Math в Python обеспечивает доступ к некоторым популярным математическим функциям и константам, которые можно использовать в коде для более сложных математических вычислений. Библиотека является встроенным модулем Python, поэтому никакой дополнительной установки через pip делать не нужно.
Что выведет код?
Anonymous Quiz
10%
14
45%
196
33%
484
12%
22
Что выведет код?
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() обеспечивает прямой доступ для чтения и записи к байтово-ориентированным данным объекта без необходимости их предварительного копирования. Это приводит к значительному увеличению производительности при работе с большими объектами, такими как двоичные данные видео или изображения, поскольку создает другой объект доступа для изменения больших данных без их копирования.