在 Python 2.7 中使用输入模块

2024-06-30 13:10:09 发布

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

typing模块是Python早期版本推断输入和输出数据类型的后端端口。我在Python2.7中遇到了一个问题。在

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

我也试过这个:

^{pr2}$

还有这个:

import typing

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

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

我的后台代码怎么了?在


Tags: 模块端口nameimport版本typinghelloreturn
1条回答
网友
1楼 · 发布于 2024-06-30 13:10:09

typing是python3.5中引入的一个模块。pep484中的示例依赖于python3+,而__annotations__是python3的概念。backport只允许使用typing模块中定义的函数类型,但它不会改变Python引擎以神奇地理解所有python3概念。在

另一个SO post中的讨论表明,应该可以通过使用inspect.getsourcelines来研究函数声明之后的第一行,并从#type开始来访问注释。pypi上存在一个^{}模块,它应该能够解析python2.7风格的注释。不幸的是,它只在beta级别声明,并且只与python3兼容。在

相关问题 更多 >