Курс Python → TypedDict для kwargs в Python 3.12

В Python 3.12 было введено нововведение, которое позволяет использовать TypedDict для определения типов **kwargs. Если вы работали с kwargs (аргументы с ключевыми словами) ранее, то вы, вероятно, знаете, что оператор двойная звездочка упаковывает переданные по имени аргументы в словарь. Теперь с помощью TypedDict (словарь с заданными типами значений) мы можем придать таким аргументам большую гибкость в определении типов.

TypedDict позволяет явно указать типы значений, которые могут содержаться в словаре kwargs. Это облегчает процесс проверки типов и обеспечивает более надежное поведение программы. При использовании TypedDict вы можете быть уверены, что передаваемые аргументы соответствуют ожидаемым типам данных.


from typing import TypedDict

class Person(TypedDict):
    name: str
    age: int

def greet_person(**kwargs: Person) -> None:
    print(f"Hello, {kwargs['name']}! You are {kwargs['age']} years old.")

greet_person(name="Alice", age=30)

В приведенном выше примере кода мы создаем TypedDict с полями «name» типа str и «age» типа int. Затем мы определяем функцию greet_person, которая принимает аргументы kwargs с типом Person. При вызове функции мы передаем аргументы name и age, убедившись, что они соответствуют ожидаемым типам. Это позволяет более точно контролировать типы данных, что способствует более безопасной и надежной разработке кода.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Реализация операции -= для пользовательского класса
  2. Эффективная конкатенация строк с использованием join()
  3. Удаление URL-адресов в Python
  4. Извлечение аудио из видео
  5. Измерение времени выполнения в Python
  6. Переопределение метода __or__()
  7. Работа со временем в Python
  8. Объединение итераторов
  9. Нахождение хеша для бесконечности и NaN в Python
  10. Метод __getitem__ в Python
  11. Комментарии в Python
  12. Использование эмодзи в Python
  13. Итерации в Python
  14. Магические методы в Python
  15. Функции any() и all() в Python
  16. Создание и использование модулей в Python
  17. Запуск внешнего кода в Jupyter
  18. Создание словаря с значением по умолчанию
  19. Генераторы в Python
  20. Участие в сообществе @selectel
  21. Работа с NumPy.linalg
  22. Оператор Walrus: правильное использование
  23. Метод __irshift__ для побитового сдвига вправо
  24. Операции с матрицами в Python
  25. Измерение времени выполнения кода
  26. Преобразование списка в словарь через генератор
  27. Прокачанный трейсинг ошибок
  28. Добавление цвета в консоли
  29. Метод __index__ в Python
  30. Сложные типы данных в Python
  31. Объединение словарей в Python
  32. Работа с getopt
  33. Python Поверхностное Копирование
  34. Работа с изображениями PIL
  35. Работа с байтовыми строками в Python
  36. Улучшенные подсказки для импорта в Python 3.12
  37. Списковое включение в Python
  38. Работа с NumPy
  39. Функция count() в Python
  40. Переворот строки с использованием цикла
  41. Работа с процессами в Python
  42. Разделение функций на этапы
  43. Управление контекстом с помощью декоратора contextmanager
  44. Навыки Python: строки, типы данных
  45. Проблема с изменяемыми аргументами
  46. Очистка входных данных

Marketello читают маркетологи из крутых компаний