Получаем список переменных
Функция
С помощью похожей функции
Еще обратите внимание на результат второй функции: там много разных переменных, которые мы явно не объявляли — про некоторые из них скоро расскажем.
#переменные
Функция
locals() возвращает словарь переменных из текущего пространства имён. Ключи словаря — названия переменных, а значения — это их значения.С помощью похожей функции
globals() можно получить все переменные конкретного модуля в таком же виде.Еще обратите внимание на результат второй функции: там много разных переменных, которые мы явно не объявляли — про некоторые из них скоро расскажем.
#переменные
👍7👎1
Декоратор override
Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
@override используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
👍2❤1👎1
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
urlencode из из модуля urllib.❤1👍1👎1
Работаем с буфером обмена
Здесь всё просто: есть пакет
В этом пакете есть две основные функции —
Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
#python #pyperclip
Здесь всё просто: есть пакет
pyperclip, который позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.В этом пакете есть две основные функции —
copy() и paste(), по названию которых понятно их предназначения.Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
#python #pyperclip
👎1🔥1
Поверхностное копирование
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
🔥2👎1
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
В примере мы проверяем, есть ли значение у атрибута
То есть при вызове конструктора класса
#классы #паттерны
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
__new__ вызывается для создания экземпляра класса, перед вызовом __init__. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).В примере мы проверяем, есть ли значение у атрибута
instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.То есть при вызове конструктора класса
Singleton, будет возвращаться один и тот же объект из памяти.#классы #паттерны
👎4❤1
Генераторы
Функции-генераторы выглядят как и обычные, но вместо
Вызов подобной функции вернёт не значение, а объект генератора. Далее из этого объекта можно получать значения, например, с помощью функции
Если генератору больше нечего возвращать, то будет вызвано исключение
#генераторы
Функции-генераторы выглядят как и обычные, но вместо
return содержат выражения с ключевым словом yield для последовательного генерирования значений.Вызов подобной функции вернёт не значение, а объект генератора. Далее из этого объекта можно получать значения, например, с помощью функции
next или циклом for.Если генератору больше нечего возвращать, то будет вызвано исключение
StopIteration. В целом, генератор — это особый, более изящный случай итератора.#генераторы
👍2👎1
🌐 Копирование веб-содержимого в Python с библиотекой pywebcopy
Библиотека
Пример кода:
В данном примере используется функция
Библиотека💻
#python #pywebcopy
Библиотека
pywebcopy облегчает автоматизацию процесса загрузки веб-содержимого, что может быть полезным при создании веб-скраперов, загрузчиков или других приложений, требующих копирования данных из Интернета.Пример кода:
from pywebcopy import save_webpage
url = 'https://www.example.com'
target_folder = 'path/to/folder'
save_webpage(url, target_folder)
В данном примере используется функция
save_webpage для копирования веб-содержимого указанной веб-страницы (url) в указанную целевую папку (target_folder).Библиотека
pywebcopy предоставляет простой и удобный способ копирования веб-содержимого прямо из Python. Она может быть полезна при создании скриптов для загрузки данных с веб-страниц, автоматизации сбора информации или создании зеркал сайтов. #python #pywebcopy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👎1
Асинхронно скачиваем файлы
Имея список ссылок на картинки, которые нужно скачать, мы можем это сделать используя простой цикл
Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс.
Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета
Далее метод
Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий.
#python #threading
Имея список ссылок на картинки, которые нужно скачать, мы можем это сделать используя простой цикл
for, тем самым скачав их последовательно одна за одной. Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс.
Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета
concurrent.futures. Она позволяет запустить нашу функцию, в нескольких екземплярах в параллельных потоках. В конструкторе необходимо указать максимальное количество потоков, которые будут одновременно запущены. Далее метод
.map(download, urls) создает екземпляры нашей функции для скачивания файла, и раскидывает в них элементы списка urls. Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий.
#python #threading
👎2👍1
Использование wget в Python для загрузки файлов
Этот код загрузит файл по указанному URL и сохранит его в текущей директории.
#python #wget
wget — это CLI инструмент для загрузки контента из сети, который можно эффективно использовать через Python. Хотя Python не имеет встроенной поддержки wget, можно использовать модуль wget, который облегчает загрузку файлов.Этот код загрузит файл по указанному URL и сохранит его в текущей директории.
#python #wget
👎3
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
urlencode из из модуля urllib.👍4👎2
Удаление страниц PDF-файла
Библиотека PyMuPDF включает в себя довольно много сложных методов, которые упрощают удаление страниц из файла PDF. Он позволяет указать либо одну страницу (используя метод deletePage()), либо диапазон номеров страниц (используя метод deletePageRange()), либо список с номерами страниц (используя метод select()).
В следующем примере показано, как использовать список для выбора страниц, которые нужно сохранить в исходном документе. Имейте в виду, что страницы, которые не указаны, не будут частью выходного документа. В нашем случае выходной документ содержит только первую, вторую и четвертую страницы.
#python
Библиотека PyMuPDF включает в себя довольно много сложных методов, которые упрощают удаление страниц из файла PDF. Он позволяет указать либо одну страницу (используя метод deletePage()), либо диапазон номеров страниц (используя метод deletePageRange()), либо список с номерами страниц (используя метод select()).
В следующем примере показано, как использовать список для выбора страниц, которые нужно сохранить в исходном документе. Имейте в виду, что страницы, которые не указаны, не будут частью выходного документа. В нашем случае выходной документ содержит только первую, вторую и четвертую страницы.
#python
👍3❤1👎1
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
urlencode из из модуля urllib.👎2❤1
Вау, вот это скорость разработки!
На GitVerse появилось зеркало PyPI — теперь Python‑пакеты доступны, даже если upstream PyPI упадёт или станет недоступен.
Ставьте зеркало как основной источник или держите как резерв. Рассказали, как это сделать, здесь!
На GitVerse появилось зеркало PyPI — теперь Python‑пакеты доступны, даже если upstream PyPI упадёт или станет недоступен.
Ставьте зеркало как основной источник или держите как резерв. Рассказали, как это сделать, здесь!
👎5🔥1
3 трюка с itertools
Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции –
Далее,
А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция
#модули #itertools
Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции –
chain. Она позволяет "склеивать" несколько итерируемых элементов в один.Далее,
accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее.А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция
combinations. Вторым аргументом можно задать длину этой самой комбинации.#модули #itertools
👍3👎1
Возврат нескольких значений из функции
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
#python
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
#python
👎6
Важное про цифры и Юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.
Это крайне важно знать, потому что эти символы влияют на такие функции, как
Думаю, в один момент это знание сэкономит вам время на исправление "бага" с такими странными символами. Предупрежден — значит вооружен.
#числа #юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.
Это крайне важно знать, потому что эти символы влияют на такие функции, как
int, unicode.isdecimal и даже re.match.Думаю, в один момент это знание сэкономит вам время на исправление "бага" с такими странными символами. Предупрежден — значит вооружен.
#числа #юникод
❤4👎2👍1
Explicit Conversion Flag
Флаг явного преобразования используется для преобразования значения поля
Это поле можно использовать для переопределения поведения
В примере, в случае с флагом
#repr #str #format
Флаг явного преобразования используется для преобразования значения поля
format перед его непосредственным форматированием.Это поле можно использовать для переопределения поведения
format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:!r – преобразует значение в строку, используя функцию repr()!s – преобразует значение в строку, используя функцию str()В примере, в случае с флагом
!r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s – без кавычек (в более удобном для чтения виде).#repr #str #format
👍3👎2
Сравнение двух аудиосообщений с использованием библиотеки Librosa
Важные замечания:
— Для точного сравнения аудиозаписей они должны иметь одинаковую продолжительность и аналогичные условия записи (громкость, уровень шума и т.д.).
— Возможно потребуется дополнительная предварительная обработка, например, нормализация громкости.
#python #librosa
Librosa — библиотека, которая обеспечивает анализ и обработку звука. Сравнение производится путем вычисления характеристик MFCC (Mel Frequency Cepstral Coefficients), описывающих звуковую сигнатуру каждого аудио.Важные замечания:
— Для точного сравнения аудиозаписей они должны иметь одинаковую продолжительность и аналогичные условия записи (громкость, уровень шума и т.д.).
— Возможно потребуется дополнительная предварительная обработка, например, нормализация громкости.
#python #librosa
👍1👎1
Читаем текст с картинки используя Tesseract от Google
Чтобы извлечь текст из изображения, используйте метод
Рекомендуется использовать библиотеку
Пример кода:
#python #pytesseract
Google разработал систему Tesseract для извлечения текста из изображений через оптическое распознавание символов.Pytesseract - это удобная оболочка для системы Tesseract, облегчающая её использование.Чтобы извлечь текст из изображения, используйте метод
image_to_string. Для работы с русским текстом укажите аргумент lang как 'rus'.Рекомендуется использовать библиотеку
pillow для открытия изображений, хотя можно также просто указать путь к файлу.Пример кода:
from PIL import Image
import pytesseract
# Открываем изображение с помощью Pillow
image = Image.open('image.jpg')
# Используем pytesseract для извлечения текста
text = pytesseract.image_to_string(image, lang='rus')
print(text)
#python #pytesseract
👍2👎1