Используйте dict.get() вместо dict[]
Есть несколько способов получения значений из словарей, и даже по такой теме разработчики часто спорят.
Многие получают значения по ключам через квадратные скобки, но если такого ключа нет, то будет вызвано исключение.
Поэтому мы считаем, что лучше использовать метод
Таким образом, если значение по ключу не найдено, то вернется дефолтное значение.
В итоге, мы убираем возможные ошибки в случае, если нужных ключей в словаре нет.
#python #dict
Есть несколько способов получения значений из словарей, и даже по такой теме разработчики часто спорят.
Многие получают значения по ключам через квадратные скобки, но если такого ключа нет, то будет вызвано исключение.
Поэтому мы считаем, что лучше использовать метод
get у словарей. Его основной плюс заключается в том, что он принимает опциональный аргумент, отвечающий за значение по умолчанию. Таким образом, если значение по ключу не найдено, то вернется дефолтное значение.
В итоге, мы убираем возможные ошибки в случае, если нужных ключей в словаре нет.
#python #dict
❤1
Media is too big
VIEW IN TELEGRAM
Не ждали, а она тут — новая версия Python 3.14
И лучше просто кликнуть сейчас по ссылке и послушать краткий обзор от Евгения Афонасьева, тимлида разработки Antifraud в Авито, чем потом упускать полезные фичи и искать этот пост.
В ролике разобрали как небольшие обновления, так и те, что лучше внедрять в свою работу уже сейчас.
Смотрим и обсуждаем по ссылке!
И лучше просто кликнуть сейчас по ссылке и послушать краткий обзор от Евгения Афонасьева, тимлида разработки Antifraud в Авито, чем потом упускать полезные фичи и искать этот пост.
В ролике разобрали как небольшие обновления, так и те, что лучше внедрять в свою работу уже сейчас.
Смотрим и обсуждаем по ссылке!
👎4
Управление версионностью Python с помощью pyenv
Инструмент pyenv предоставляет простой способ для переключения между различными версиями Python, придерживаясь принципов UNIX, согласно которым каждый инструмент должен эффективно выполнять свою задачу.
Возможности
- Изменение глобальной версии
- Управление версиями
- Переопределение версии
- Поиск и выполнение команд сразу из нескольких версий
#pyenv
Инструмент pyenv предоставляет простой способ для переключения между различными версиями Python, придерживаясь принципов UNIX, согласно которым каждый инструмент должен эффективно выполнять свою задачу.
Возможности
pyenv включают:- Изменение глобальной версии
Python для пользователя;- Управление версиями
Python для индивидуальных проектов;- Переопределение версии
Python через переменную среды;- Поиск и выполнение команд сразу из нескольких версий
Python.#pyenv
👍3❤1
Получение геолокации по IP с использованием ip2geotools
Недавно я обнаружил увлекательный пакет
Пример кода для получения информации по IP с использованием класса
Этот код использует метод
#python #ip2geotools
Недавно я обнаружил увлекательный пакет
ip2geotools, который обеспечивает возможность получения геолокации по IP из различных баз данных. Пример кода для получения информации по IP с использованием класса
DbIpCity, представляющего некоммерческую базу данных, выглядит следующим образом:from ip2geotools.databases.noncommercial import DbIpCity
def get_ip_geolocation(ip_address):
try:
response = DbIpCity.get(ip_address, api_key='free')
city = response.city
region = response.region
country = response.country
latitude = response.latitude
longitude = response.longitude
print(f"Информация о местоположении для IP {ip_address}:")
print(f"Город: {city}")
print(f"Регион: {region}")
print(f"Страна: {country}")
print(f"Широта: {latitude}")
print(f"Долгота: {longitude}")
except Exception as e:
print(f"Ошибка при получении информации по IP {ip_address}: {e}")
ip_address_to_check = '8.8.8.8'
get_ip_geolocation(ip_address_to_check)
Этот код использует метод
get из класса DbIpCity для получения информации о местоположении по заданному IP-адресу. Помните о том, что для использования некоторых баз данных может потребоваться API-ключ.#python #ip2geotools
👍4
PyQtGraph
PyQtGraph — это библиотека Python для создания интерактивных 2D и 3D графиков, а также элементов графического интерфейса (GUI). Она основана на PyQt (или PySide) и NumPy, что делает ее мощным и универсальным инструментом для научных, инженерных и исследовательских задач.
#python
PyQtGraph — это библиотека Python для создания интерактивных 2D и 3D графиков, а также элементов графического интерфейса (GUI). Она основана на PyQt (или PySide) и NumPy, что делает ее мощным и универсальным инструментом для научных, инженерных и исследовательских задач.
#python
❤6
TurboGears
TurboGears — это фреймворк для создания веб-приложений на Python. Он состоит из набора взаимозаменяемых компонентов, упрощающих и ускоряющих разработку.
Вот некоторые ключевые особенности TurboGears:
— TurboGears использует архитектурный шаблон Model-View-Controller (MVC), разделяя ваше приложение на логические блоки: модель, представление и контроллер. Это способствует более организованной и поддерживаемой разработке.
— TurboGears позволяет вам выбирать нужные библиотеки и инструменты. По умолчанию он использует Pylons, SQLAlchemy, Genshi и Repoze, но вы можете заменить их на другие.
#python
TurboGears — это фреймворк для создания веб-приложений на Python. Он состоит из набора взаимозаменяемых компонентов, упрощающих и ускоряющих разработку.
Вот некоторые ключевые особенности TurboGears:
— TurboGears использует архитектурный шаблон Model-View-Controller (MVC), разделяя ваше приложение на логические блоки: модель, представление и контроллер. Это способствует более организованной и поддерживаемой разработке.
— TurboGears позволяет вам выбирать нужные библиотеки и инструменты. По умолчанию он использует Pylons, SQLAlchemy, Genshi и Repoze, но вы можете заменить их на другие.
#python
❤1
NetworkX
NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.
Она может использоваться в различных областях, таких как социальные, биологические, транспортные, компьютерные сети и многих других.
#python
NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.
Она может использоваться в различных областях, таких как социальные, биологические, транспортные, компьютерные сети и многих других.
#python
👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Научись проектировать ИИ-агентов, управлять роботами и развертывать RAG-системы 21 ноября на True Tech Champ
На бесплатном фестивале технологий от МТС тебя ждет конференция с российскими и иностранными экспертами и новый формат лектория — ИТ-качалка.
Уже известны первые спикеры и темы:
• «Физический агент: на пути к когнитивным роботам общего назначения с моделями мира», Артем Лыков — ведущий R&D-разработчик MWS, аспирант ISR Lab и Skoltech.
• «RAG как помощник на каждый день», Валентин Малых — руководитель фундаментальных исследований MWS AI
• An introduction tutorial to AI Agent Workflows, Майкл Ланэм — канадский разработчик с 20-летним и автор книги AI Agents in Action.
Между докладами и воркшопами можно смотреть гонки и битвы роботов, устроить поединки робопауков, пройти лазерный лабиринт, собрать сервер на скорость, сделать аксессуары из плат и протестировать другие айтивности.
Выбирай формат — смотри прямой эфир или приходи в МТС Live Холл.
Регистрируйся, чтобы провести 21 ноября с пользой и драйвом.
На бесплатном фестивале технологий от МТС тебя ждет конференция с российскими и иностранными экспертами и новый формат лектория — ИТ-качалка.
Уже известны первые спикеры и темы:
• «Физический агент: на пути к когнитивным роботам общего назначения с моделями мира», Артем Лыков — ведущий R&D-разработчик MWS, аспирант ISR Lab и Skoltech.
• «RAG как помощник на каждый день», Валентин Малых — руководитель фундаментальных исследований MWS AI
• An introduction tutorial to AI Agent Workflows, Майкл Ланэм — канадский разработчик с 20-летним и автор книги AI Agents in Action.
Между докладами и воркшопами можно смотреть гонки и битвы роботов, устроить поединки робопауков, пройти лазерный лабиринт, собрать сервер на скорость, сделать аксессуары из плат и протестировать другие айтивности.
Выбирай формат — смотри прямой эфир или приходи в МТС Live Холл.
Регистрируйся, чтобы провести 21 ноября с пользой и драйвом.
❤2
Порядок разрешения методов
В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.
Этот порядок можно получить при помощи атрибута
Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
#классы
В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.
Этот порядок можно получить при помощи атрибута
__mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в C и в самом конце в object. Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
#классы
❤7
База данных на минималках
Встроенный модуль
Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод
В документации заявляют, что такая база данных является "надежной". Но учитывая, что
#shelve
Встроенный модуль
shelve позволяет сохранять и читать произвольные данные. Таким образом, можно сохранять любые Python объекты для дальнейшего использования. Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод
shelve.open поддерживает протокол контекстного менеджера, то есть можно не вызывать метод close. В документации заявляют, что такая база данных является "надежной". Но учитывая, что
shelve написан на pickle, его стоит использовать только в совсем маленьких проектах.#shelve
👍2👎1
Отладка утечек памяти в Python приложении
Для отладки утечек памяти в
Оба инструмента просты в использовании и предоставляют мощные средства для выявления и устранения утечек памяти в вашем приложении.
#python #memoryprofiler #objgraph
Для отладки утечек памяти в
Python можно использовать инструменты, такие как Memory Profiler и objgraph. Эти инструменты помогут вам выявить, какие объекты удерживают ссылки и могут вызывать утечки памяти.Memory Profiler позволяет получить детальный отчет о потреблении памяти в каждой строке кода вашего скрипта. Чтобы воспользоваться этим инструментом, запустите вашу программу с помощью следующей команды:python -m memory_profiler my_script.py
objgraph помогает визуализировать ссылки между объектами, что позволяет легко понять, какие объекты удерживают ссылки на другие объекты. Например, следующий код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, и все объекты, которые ссылаются на них.Оба инструмента просты в использовании и предоставляют мощные средства для выявления и устранения утечек памяти в вашем приложении.
#python #memoryprofiler #objgraph
🔥2