Что нового в Python 3.12

Что нового в Python 3.12

💬TypedDict для определения типов **kwargs💬
Если вам доводилось налегать на kwargs (keyword arguments – аргументы c ключевыми словами), то вы помните, что оператор двойная звездочка издавна упаковывает аргументы, переданные по имени, в словарь:
>>> def fun(**kwargs):
>>> print(kwargs) # выводим словарь на консоль
>>>
>>> fun(name="Tom", age="38", company="Google")
>>> fun(language="Python", version="3.11")
{'name': 'Tom', 'age': '38', 'company': 'Google'}
{'language': 'Python', 'version': '3.11'}

Теперь мы можем использовать TypedDict (буквально – словарь с заданными типами значений) для того, чтобы такие аргументы получили большую свободу типов:
from typing import TypedDict, Unpack
class Movie(TypedDict):
name: str
year: int
def foo(**kwargs: Unpack[Movie]): ...

Источник:

3
2 комментария