gpt4 book ai didi

python - 在 Python 2.7 中使用输入模块

转载 作者:行者123 更新时间:2023-11-30 22:43:02 27 4
gpt4 key购买 nike

typing 模块是早期版本 Python 的向后移植,用于推断输入和输出数据类型。我在让它在 Python 2.7 中工作时遇到问题。

import typing
def greeting(name): # type: (str) -> str
"""documentations"""
return ('Hello ' + name)
print(greeting.__annotations__) # fails because doesn't exist.

我也尝试过这个:

import typing
def greeting(name # type: str
):
# type: (...) -> str
"""documentations"""
return ('Hello ' + name)

还有这个:

import typing

def greeting(name):
# type: (str) -> str
"""documentations"""
return ('Hello ' + name)

这应该根据 PEP484 在类上创建一个 __annotations__ 属性,但我根本没有看到这种情况发生。

我的反向移植代码做错了什么?

最佳答案

typing 是 Python 3.5 中引入的模块。 PEP 484 中的示例依赖于 Python 3+,并且 __annotations__ 是 Python 3 概念。向后移植只能允许使用 typing 模块中定义的函数类型,但它不会改变 Python 引擎以神奇地理解所有 Python 3 概念。

其他的讨论SO post建议通过使用 inspect.getsourcelines 研究函数声明之后的第一行并以 # type 开头来访问注释。一个typed-ast模块存在于 pypi 上,应该能够解析 Python 2.7 样式注释。不幸的是,它仅在 beta 级别声明,并且仅与 Python 3 兼容。

关于python - 在 Python 2.7 中使用输入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41893999/

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