是否可以在Python中创建参数化类型别名?

问题描述 投票:1回答:1

所以我有以下代码:

@dataclass
class User:
    name: str
    age: int

User类应该对应于数据库中某个表,其中name字段是主键。我想要以下类型提示:

@dataclass
class User:
    name: Key[str]
    age: int

因此,我可以在代码中进一步检查字段的类型提示以找到主键的名称。我希望Key [T]解析为T,这样正常的类型提示将起作用并检查所提供的类型确实是str。我在打字模块的文档中进行了一些搜索,但找不到任何合适的方法。

python-3.x typing
1个回答
0
投票

如果我正确理解您的问题,您可能正在寻找typing.NewType

Key = NewType("Key", str)

@dataclass
class User:
    name: Key
    age: int

或者您是否需要Key是具有[]中指定类型的泛型?

© www.soinside.com 2019 - 2024. All rights reserved.