gpt4 book ai didi

python - 我可以使用 typing 模块在 python 中为类型构造函数创建类型别名吗?

转载 作者:太空狗 更新时间:2023-10-29 19:28:23 26 4
gpt4 key购买 nike

自 python 版本 3.5 起,您可以使用类型提示来指示函数期望的参数类型。我发现这些类型提示对于文档而言非常有值(value),所以我尽可能多地使用它们。它们还帮助 linter,因此经常使我免受代码更改引入的错误。

例如,在我的代码中有几个函数将零参数函数作为参数。例如:

def onReady(f: Callable[[], Any]) -> None:
...

或者

def checkIfReady(f: Callable[[], Bool]) -> None:
...

我想做的是像这样创建一个类型别名(下面的代码不是有效的 python):

Action[A] = Callable[[], A]

然后我可以缩短上述参数的类型:

def onReady(f: Action[Any]) -> None:
...

我知道我可以为特定实例创建类型别名,例如:

ActionBool = Callable[[], bool]

而且我知道 typing 模块中存在 NewType,但这些似乎都没有推广到高阶类型。

最佳答案

我想我找到了最简单的解决方案。根据PEP 484 ,这是有效的:

T = TypeVar('T') #  or TypeVar('T', int, float, bool, str)
Action = Callable[[], T]
def onReady(f: Action[Any]) -> None:
pass

关于python - 我可以使用 typing 模块在 python 中为类型构造函数创建类型别名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49887430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com