我可以 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'
解包顺序是定义中字段的顺序。
这是一个简单的问题,所以令我惊讶的是我无法在 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'
解包顺序是定义中字段的顺序。