我可以 unpack/destructure 一个 typing.NamedTuple 吗?

Can I unpack/destructure a typing.NamedTuple?

这是一个简单的问题,所以令我惊讶的是我无法在 SO 上找到它(如果我错过了它,我深表歉意),并且当我考虑重构以替换由 NamedTuple 生成的元组。

我可以将 typing.NamedTuple 解包为参数或解构赋值,就像我可以使用 tuple 一样吗?

是的你当然可以。

from typing import NamedTuple

class Test(NamedTuple):
    a: int
    b: int

t = Test(1, 2)

# destructuring assignment
a, b = t
# a = 1
# b = 2

def f(a, b):
    return f"{a}{b}"

# unpack
f(*t)
# '12'

解包顺序是定义中字段的顺序。