Python | Notes
5.56K subscribers
1.56K photos
2 videos
1.59K links
Заявки принимаются моментально!

⚡️Лучшие шпаргалки по Python!

Поделиться с другом - https://t.me/+ugLTJcF7eFllMDky

Менеджеры: @sorivmavb @ootrimoo @mirapoller
Download Telegram
Ключевое слово nonlocal

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

Поведение nonlocal заключается в том, что интерпретатор ищет переменную в ближайшей области видимости.

Основное различие с global в том, что с помощью nonlocal нельзя получить переменные из глобальной области видимости.

Python | Notes
👍16
Python позволяет вам возвращать из функции несколько значений.

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

Еще несколько значений можно возвращать, перечислив их через запятую после команды return.

Python | Notes
👍15👏1😁1
Выражения генераторы

Интересное расширение Python, обобщающее list comprehension, — выражения-генераторы. Они работают совершенно аналогично list comprehension, только без создания в памяти собственно списка. Числа создаются по ходу дела, без сохранения их явным образом в списке.

Например, вместо вычисления квадратов первых 20 натуральных чисел с помощью list comprehension:

sum([x*x for x in range(20)])

можно воспользоваться выражением-генератором:

sum(x*x for x in range(20))

Использование данного способа ускоряет выполнение программы.

Python | Notes
👍22
Функция help

Если вы находитесь в Python Shell или делаете отладку кода с использованием breakpoint, и хотите знать, как работает определённый объект, метод или атрибут, функция help поможет вам.

В действительности вы, скорее всего, будете обращаться за помощью к поисковой системе. Но если вы уже находитесь в Python Shell, вызов help(list.append) будет быстрее, чем поиск документации в Google.

Python | Notes
👍14❤‍🔥1😁1
Модуль dis

Вы когда-нибудь задумывались, что Python делает под капотом? Со стандартным модулем библиотеки dis вы можете легко посмотреть. Эта библиотека позволяет декомпилировать байт-код Python и изучить его.

Python | Notes
👍11❤‍🔥2
KD-деревья — это структура данных, оптимизированная для запросов ближайших соседей. Например, в наборе точек можно эффективно узнать, какие точки являются ближайшими к определенной заданной точке.

Метод KDTree() возвращает объект KDTree. Метод query() возвращает расстояние до ближайшего соседа и местоположение соседей.

Python | Notes
👍10
issuperset

Метод issuperset() возвращает True, если множество содержит все элементы другого множества (передается как аргумент). Если нет, возвращается False. Также можно использовать оператор >=, однако он требует множеств по обе стороны. Метод issuperset может принимать любой объект.

Python | Notes
11
В Python есть библиотека с именем UUID (универсальный уникальный идентификатор) для генерации случайного объекта длиной 128 бит. Эта библиотека генерирует уникальные идентификаторы на основе системного времени и сетевого адреса компьютера.

Объект UUID неизменяем и содержит некоторые функции для создания различных уникальных идентификаторов. UUID используется для многих целей, таких как:
- создание уникального случайного идентификатора
- MAC-адреса на основе идентификатора
- криптографических значений
- хеш-функции и тд.

Python | Notes
👍20
Функция getsizeof()

Модуль sys стандартной библиотеки предоставляет функцию getsizeof(). Эта функция принимает объект (объект может быть любого типа), вызывает метод sizeof() и возвращает размер объекта в байтах, поэтому вы также можете сделать ваши объекты инспектируемыми.

Сегодня эту функцию испытаем на числах.

Python | Notes
👍9
The Interface Segregation Principle

Принцип разделения интерфейсов. Создавайте узкоспециализированные интерфейсы и не вынуждайте клиента зависеть от неиспользуемых интерфейсов. Допустим есть класс Auto с методами комплектаций для всех автомобилей. Если мы наследуемся от интерфейса, то все методы реализованные в нем должны быть описаны в классе-потомке. В результате чего классы могут получить ненужные методы. Для решения этой проблемы мы разделяем интерфейсы.

Python | Notes
👍62