有没有办法在其以前的版本中使用 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
在 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