Курс 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. Создание графики с черепахой
  5. Генератор данных в Keras
  6. Итераторы в Python
  7. Округление чисел с помощью round
  8. Управление экспортом элементов
  9. Получение комбинаций в Python
  10. Поиск анаграмм с Counter
  11. Чтение и запись TOML-конфигов
  12. Работа с itertools
  13. Python: отсутствие точек с запятыми
  14. Отладка в командной строке
  15. Работа с дробями в Python
  16. Компиляция регулярных выражений
  17. Нахождение самого длинного слова в списке с помощью max
  18. Глобальные переменные в Python
  19. Основные операции с Numpy
  20. Работа с геоданными с помощью geopy
  21. Оператор «not» в Python
  22. Оптимизация методов в Python 3.7
  23. Операция += для списков
  24. Каналы Senior: Python, Java, Frontend, SQL, C++
  25. Инверсия списка/строки в Python
  26. Работа с deque из collections
  27. Solidity для DeFi Ethereum
  28. Проблема с изменяемыми аргументами
  29. Возвращение нескольких значений
  30. Подсчет элементов в Python
  31. Структура данных deque в Python
  32. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  33. Профилирование кода
  34. Комплексные числа в Python
  35. Удаление ресурса в Python
  36. Построение графиков в Matplotlib
  37. Метод pop() списка
  38. Поиск всех индексов подстроки
  39. Срезы в Python
  40. Объединение итераторов
  41. Исправление ошибки NameError
  42. Обновление шаблона base.html
  43. Форматирование строк в Python
  44. Объединение коллекций в Python
  45. f-строки в формате строк
  46. Хранение переменных в Python.

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