有没有办法在其以前的版本中使用 Python 3.9 类型提示?

Is there a way to use Python 3.9 type hinting in its previous versions?

在 Python 3.9 中,我们可以按照 here 所述以小写内置方式使用类型提示(无需从 typing 模块导入类型签名):

def greet_all(names: list[str]) -> None:
    for name in names:
        print("Hello", name)

我非常喜欢这个想法,我想知道是否可以使用这种类型提示方式,但是在 python 的早期版本中,例如 Python 3.7,我们像这样写类型提示:

from typing import List

def greet_all(names: List[str]) -> None:
    for name in names:
        print("Hello", name)

简单地说,从 __future__ 导入 annotations 就可以了。

from __future__ import annotations

import sys
!$sys.executable -V #this is valid in iPython/Jupyter Notebook


def greet_all(names: list[str]) -> None:
    for name in names:
        print("Hello", name)
        
        
greet_all(['Adam','Eve'])

Python 3.7.6
Hello Adam
Hello Eve