SimpleNamespace是否有类型提示?

2024-04-25 22:10:52 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我正在定义一个返回types.SimpleNamespace的函数。我想输入提示结果:

from types import SimpleNamespace

def func() -> SimpleNamespace(x: int, y: str):  # SyntaxError! What should be used instead?
    return SimpleNamespace(x=3, y='abc')

请注意SimpleNamespace通常用作tuple的替代方案,其中数据成员是命名的。对于元组,存在相应的类型提示:

from typing import Tuple

def func() -> Tuple[int, str]:  # OK
    return 3, 'abc'

顺便说一句,为了文档的缘故,今天我使用以下内容:

from types import SimpleNamespace

def func() -> SimpleNamespace(x=int, y=str):  # Seems to work fine
    return SimpleNamespace(x=3, y='abc')

但这不是标准的(因此类型检查器不支持它),而且可能不是合适的Python(或者是吗?)


Tags: 函数fromimport类型return定义defint