Выражения генераторы
Интересное расширение Python, обобщающее list comprehension, — выражения-генераторы. Они работают совершенно аналогично list comprehension, только без создания в памяти собственно списка. Числа создаются по ходу дела, без сохранения их явным образом в списке.
Например, вместо вычисления квадратов первых 20 натуральных чисел с помощью list comprehension:
Python | Notes
Интересное расширение 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 | Notes
Если вы находитесь в
Python Shell или делаете отладку кода с использованием breakpoint, и хотите знать, как работает определённый объект, метод или атрибут, функция help поможет вам.В действительности вы, скорее всего, будете обращаться за помощью к поисковой системе. Но если вы уже находитесь в
Python Shell, вызов help(list.append) будет быстрее, чем поиск документации в Google.Python | Notes
👍14❤🔥1😁1
Модуль dis
Вы когда-нибудь задумывались, что Python делает под капотом? Со стандартным модулем библиотеки
Python | Notes
Вы когда-нибудь задумывались, что Python делает под капотом? Со стандартным модулем библиотеки
dis вы можете легко посмотреть. Эта библиотека позволяет декомпилировать байт-код Python и изучить его.Python | Notes
👍11❤🔥2
KD-деревья — это структура данных, оптимизированная для запросов ближайших соседей. Например, в наборе точек можно эффективно узнать, какие точки являются ближайшими к определенной заданной точке.
Метод KDTree() возвращает объект KDTree. Метод query() возвращает расстояние до ближайшего соседа и местоположение соседей.
Python | Notes
Метод KDTree() возвращает объект KDTree. Метод query() возвращает расстояние до ближайшего соседа и местоположение соседей.
Python | Notes
👍10
issuperset
Метод issuperset() возвращает True, если множество содержит все элементы другого множества (передается как аргумент). Если нет, возвращается False. Также можно использовать оператор >=, однако он требует множеств по обе стороны. Метод issuperset может принимать любой объект.
Python | Notes
Метод issuperset() возвращает True, если множество содержит все элементы другого множества (передается как аргумент). Если нет, возвращается False. Также можно использовать оператор >=, однако он требует множеств по обе стороны. Метод issuperset может принимать любой объект.
Python | Notes
⚡11
В Python есть библиотека с именем UUID (универсальный уникальный идентификатор) для генерации случайного объекта длиной 128 бит. Эта библиотека генерирует уникальные идентификаторы на основе системного времени и сетевого адреса компьютера.
Объект UUID неизменяем и содержит некоторые функции для создания различных уникальных идентификаторов. UUID используется для многих целей, таких как:
- создание уникального случайного идентификатора
- MAC-адреса на основе идентификатора
- криптографических значений
- хеш-функции и тд.
Python | Notes
Объект UUID неизменяем и содержит некоторые функции для создания различных уникальных идентификаторов. UUID используется для многих целей, таких как:
- создание уникального случайного идентификатора
- MAC-адреса на основе идентификатора
- криптографических значений
- хеш-функции и тд.
Python | Notes
👍20
Функция getsizeof()
Модуль sys стандартной библиотеки предоставляет функцию getsizeof(). Эта функция принимает объект (объект может быть любого типа), вызывает метод
Сегодня эту функцию испытаем на числах.
Python | Notes
Модуль sys стандартной библиотеки предоставляет функцию getsizeof(). Эта функция принимает объект (объект может быть любого типа), вызывает метод
sizeof() и возвращает размер объекта в байтах, поэтому вы также можете сделать ваши объекты инспектируемыми.Сегодня эту функцию испытаем на числах.
Python | Notes
👍9
The Interface Segregation Principle
Принцип разделения интерфейсов. Создавайте узкоспециализированные интерфейсы и не вынуждайте клиента зависеть от неиспользуемых интерфейсов. Допустим есть класс Auto с методами комплектаций для всех автомобилей. Если мы наследуемся от интерфейса, то все методы реализованные в нем должны быть описаны в классе-потомке. В результате чего классы могут получить ненужные методы. Для решения этой проблемы мы разделяем интерфейсы.
Python | Notes
Принцип разделения интерфейсов. Создавайте узкоспециализированные интерфейсы и не вынуждайте клиента зависеть от неиспользуемых интерфейсов. Допустим есть класс Auto с методами комплектаций для всех автомобилей. Если мы наследуемся от интерфейса, то все методы реализованные в нем должны быть описаны в классе-потомке. В результате чего классы могут получить ненужные методы. Для решения этой проблемы мы разделяем интерфейсы.
Python | Notes
👍6⚡2
Размещайте метод __init__ в самом начале
Хотя для большинства из нас это правило очевидно, но встречаются программисты, которые “прячут”
При наличии атрибутов класса метод
Python | Notes
Хотя для большинства из нас это правило очевидно, но встречаются программисты, которые “прячут”
__init__ глубоко в теле класса с другими атрибутами. Располагать же его следует в самом начале класса до упоминания всех остальных методов, поскольку именно там его будут искать при чтении.При наличии атрибутов класса метод
__init__ размещается после них. Во избежание путаницы этого принципа следует последовательно придерживаться при определении всех классов проекта.Python | Notes
👍12🥰1
Метод math.fsum() возвращает сумму всех элементов в любой итерации. Итерацией может быть кортеж, массив, список. Если итерируемый объект не является числом, он возвращает TypeError. Этот метод возвращает сумму всех значений в виде значения с плавающей запятой.
Python | Notes
👍15
Метод seekable() используется для проверки того, доступен ли файл для поиска.
Он возвращает true, когда файл доступен для поиска, иначе возвращает false. Файл доступен для поиска, если он разрешает доступ к файловому потоку.
Python | Notes
Он возвращает true, когда файл доступен для поиска, иначе возвращает false. Файл доступен для поиска, если он разрешает доступ к файловому потоку.
Python | Notes
👍11🔥1