Курс 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. Сортировка в Python
  2. Ограничение итераций в Python
  3. Делегирование в Python
  4. Документирование функций в Python
  5. Группы исключений в Python
  6. Создание инструмента обнаружения плагиата
  7. Работа с файлами в Python
  8. Метод rmatmul для обратного матричного умножения
  9. Многострочные комментарии в Python
  10. Команда %dhist — список посещенных каталогов
  11. Хеширование паролей с солью
  12. Создание GUI с Tkinter: Entry
  13. Работа с модулем random
  14. Генерация тестовых данных с factory_boy
  15. Тип CodeType в Python.
  16. Оформление кода по PEP 8
  17. Множественное наследование в Python
  18. Курсы Яндекс Практикум
  19. Поиск элементов BeautifulSoup
  20. Модуль functools в Python
  21. Оператор деления для класса Rational
  22. Операторы сравнения в Python
  23. Обработка аргументов Python
  24. Распаковка аргументов в Python
  25. Выражения-генераторы в Python
  26. Подсчет элементов в Python
  27. Измерение времени выполнения кода
  28. Конкатенация строковых литералов
  29. Присвоение значений переменным в Python
  30. Инвертирование словаря
  31. Управление контекстом выполнения кода
  32. Расширение операции побитового «и» в Python
  33. Метод сравнения объектов в Python
  34. Методы работы со строками в Python
  35. Работа с географическими данными.
  36. Оптимизация памяти в Python
  37. Лямбда-функции в Python
  38. Декораторы в Python
  39. Создание OrderedDict
  40. Работа с файлами в Python
  41. Enum в Python
  42. Классы данных в Python
  43. Реализация метода __abs__ в Python
  44. Декораторы с @wraps

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