TypedDict | Куда, зачем
Для тех, кто стремится писать поддерживаемый код, существует
В обычных словарях Python ключи и значения могут быть абсолютно любыми, и это даёт большую гибкость, но вместе с тем усложняет контроль и проверку данных.
В примере выше мы создаем класс
Теперь при создании экземпляра:
если в словаре отсутствует обязательный ключ или тип значения не совпадает, современные инструменты статической типизации (например,
Опциональные ключи
Бывает, что не всегда все ключи словаря на месте. В
#основы
@zen_of_python
Для тех, кто стремится писать поддерживаемый код, существует
TypedDict
(«Типизированный словарь»). В этом посте разберём, зачем нужен, как правильно использовать и какие возможности открывает.TypedDict
— это специальный тип данных, что позволяет создавать словари с явно заданными типами для ключей и значений. Таким образом, вы можете описать структуру словаря, как будто это объект с фиксированными полями.
from typing import TypedDict
class User(TypedDict):
name: str
age: int
email: str
В обычных словарях Python ключи и значения могут быть абсолютно любыми, и это даёт большую гибкость, но вместе с тем усложняет контроль и проверку данных.
TypedDict
позволяет добавить статическую типизацию к словарям, тем самым снизить вероятность неожиданных ситуаций с вашими экземплярами.В примере выше мы создаем класс
User
, который наследуется от TypedDict
. Теперь словари типа User
должны иметь ключи name
, age
и email
с типами str
, int
и str
соответственно.Теперь при создании экземпляра:
user: User = {
"name": "Alice",
"age": 30,
"email": "[email protected]"
}
если в словаре отсутствует обязательный ключ или тип значения не совпадает, современные инструменты статической типизации (например,
mypy
) выдадут ворнинг.Опциональные ключи
Бывает, что не всегда все ключи словаря на месте. В
TypedDict
их можно сделать необязательными (total=False
):
class User(TypedDict, total=False):
nickname: str
bio: str
#основы
@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
asdf-vm | Переключаться между окружениями автоматом
Продвинутая система управления виртуальными окружениями, позволяющая в одну команду:
— устанавливать зависимости для НЕСКОЛЬКИХ ЯП в одном окне;
— при переходе в папку другого проекта переключится на соответствующее окружение и многое другое.
Цена: бесплатно
Репозиторий проекта
Сайт
🌚 — Если это уже слишком «дебри»
😎 — Если считаешь такое элегантным
Продвинутая система управления виртуальными окружениями, позволяющая в одну команду:
— устанавливать зависимости для НЕСКОЛЬКИХ ЯП в одном окне;
— при переходе в папку другого проекта переключится на соответствующее окружение и многое другое.
Цена: бесплатно
Репозиторий проекта
Сайт
🌚 — Если это уже слишком «дебри»
😎 — Если считаешь такое элегантным
pip vs. pip3 | Что выбрать?
Если вам вдруг стало очень важно понимать различие между этими менеджерами зависимостей, то все просто. Основное различие — это «прнадлежность» версиям Python 2 или 3:
Если у тебя установлен только Python 3,
Как проверить, какая версия связана с pip
#основы
@zen_of_python
Если вам вдруг стало очень важно понимать различие между этими менеджерами зависимостей, то все просто. Основное различие — это «прнадлежность» версиям Python 2 или 3:
pip
— это менеджер пакетов по умолчанию для Python 2 / 3 (где «двойка» не установлена;pip3
— это явно указанный менеджер пакетов для Python 3.Если у тебя установлен только Python 3,
pip
и pip3
будут работать одинаково.Как проверить, какая версия связана с pip
pip --version # pip 20.0.2 from /usr/lib/python2.7/site-packages/pip (python 2.7)
pip3 --version # pip3 21.2.4 from /usr/lib/python3.8/site-packages/pip (python 3.8)
#основы
@zen_of_python
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
Как по мнению Python-разработчика на самом деле должен работать Pip-Boy в игре Fallout.
#кек
@zen_of_python
#кек
@zen_of_python
Forwarded from Типичный программист
Как искать работу в IT в 2025, не вызывая подозрений у санитаров
В отборе в IT страсти кипят не меньше, чем в хайлоаде. Вместе с Proglib мы провели исследование и спросили сотни айтишников: что реально выводит из себя в найме?
Собрали всё в удобный чек-лист:
– HR узнают, как не отпугивать сильных кандидатов.
– Айтишники поймут, где сразу маячат ред флаги и можно не терять время.
Надеемся, материал хоть и немного, но изменит процессы найма к лучшему. Поэтому сохраняйте, делитесь и прожимайте ❤️
В отборе в IT страсти кипят не меньше, чем в хайлоаде. Вместе с Proglib мы провели исследование и спросили сотни айтишников: что реально выводит из себя в найме?
Собрали всё в удобный чек-лист:
– HR узнают, как не отпугивать сильных кандидатов.
– Айтишники поймут, где сразу маячат ред флаги и можно не терять время.
Надеемся, материал хоть и немного, но изменит процессы найма к лучшему. Поэтому сохраняйте, делитесь и прожимайте ❤️