Существует такой интересный конструкт
typing.TypedDict.Он позволяет добавлять подсказки о типах данных словарю:class Point2D(TypedDict): x: int y: int label: stra: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OKb: Point2D = {'z': 3, 'label': 'bad'} # Не пройдет проверкуТеперь TypedDict имеет необязательные элементы:
class Movie(TypedDict): title: str year: NotRequired[int]m1: Movie = {"title": "Black Panther", "year": 2018} # OKm2: Movie = {"title": "Star Wars"} # OK (год необязателен)m3: Movie = {"year": 2022} # Ошибка (не заполнено обязательное поле)Спасибо подписчику @Trizalio за годную подсказку.
Если вы знаете, о какой еще годной фиче из свежих релизов Python рассказать, поделитесь в комментариях. Интересные ответы мы превратим в посты с вашим упоминанием.
#лучшиепрактики