如何在Python中以常量形式但多种类型输入hint Dict?

M.w*_*wol 3 python list typing type-hinting

我想输入提示 some_func 函数的返回对象,它始终是相同的格式。它是否正确?

from typing import List, Dict


def some_func() -> List[Dict[str, int, str, List[CustomObject]]]:
    my_list = [
               {"ID": 1, "cargo": [CustomObject(), CustomObject()]},
               {"ID": 2, "cargo": [CustomObject(), CustomObject()]},
               {"ID": 2, "cargo": [CustomObject(), CustomObject()]}
               ]
    return my_list
Run Code Online (Sandbox Code Playgroud)

mou*_*ail 7

您可以通过以下方式执行此操作TypedDict

class MyDict(TypedDict):
    ID: int
    cargo: list[CustomObject]

def some_func()->list[MyDict]:
    pass
Run Code Online (Sandbox Code Playgroud)

类型化字典(请参阅PEP 589)是一种为字典中的不同键指定不同类型的方法。

另请注意,从 python 3.10 开始,您可以只使用list[type]而不是typing.List[type]. 也适用于字典和元组。