Курс 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. Функция format() в Python
  2. Генератор списка с условием if
  3. Множественное назначение в Python
  4. Метод append() для списка
  5. Python Метод sleep() из time
  6. Форматирование строк в Python
  7. Метод __irshift__ для побитового сдвига вправо
  8. Получение ID процесса
  9. Обмен переменными в Jupyter
  10. Сортировка в Python
  11. Замеры производительности в Python
  12. Разделение функций на этапы
  13. Копирование объектов в Python
  14. Оптимизация поиска в словарях
  15. Python Enum Weekday Usage
  16. Работа с массивами в Numpy
  17. Отображение графиков в Jupyter с Matplotlib
  18. %pinfo: получение информации об объекте
  19. Оценка выражений генератора в Python
  20. Необязательные аргументы в Python
  21. Подсказки типов в Python
  22. Поиск шаблона в строке
  23. Декораторы в Python
  24. Работа с классами данных
  25. JMESPath в Python
  26. Модуль antigravity: генерация координат
  27. Удаление файлов в Python
  28. Создание новых функций с помощью functools.partial
  29. Создание GUI с Tkinter: Entry
  30. Объединение итераторов
  31. Работа с очередями в Python
  32. Объединение списков в строку
  33. Моржовый оператор в Python 3.8
  34. Профилирование кода на Python
  35. Форматирование строк в Python
  36. Работа со стеком в Python
  37. Логические значения в Python
  38. Удаление ключа из словаря
  39. Класс UserDict: дополнительная функциональность
  40. Bootle — простой веб-фреймворк
  41. Роль запятой в Python
  42. Объявление переменных в Python
  43. Метод repr() в Python

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