bre*_*an0 2 python type-hinting
假设我有一个这样的函数:
def A(test=False):
if test:
return 1
return "no value passed in for test"
Run Code Online (Sandbox Code Playgroud)
在 Typescript 中,你可以做类似的事情
function A(test=false) <number | string> {
...
}
Run Code Online (Sandbox Code Playgroud)
但如果我尝试用 Python 做同样的事情,我会得到一个错误。
def A(test=False) -> (int, str):
def A(test=False) -> [int, str]:
def A(test=False) -> int or str:
Run Code Online (Sandbox Code Playgroud)
在处理类型检查中的歧义方面,我对 Python 有了更好的理解。所以这可能不是问题。但我很感兴趣是否有正确的方法可以做到这一点。
用于typing.Union多种类型的“非此即彼”关系。
from typing import Union
def fn(test=False) -> Union[str, int]:
if test:
return 1
return "no value passed in for test"
Run Code Online (Sandbox Code Playgroud)
在 Python 3.10 中,二元或运算符|可用于根据PEP 604创建并集:
def fn(test=False) -> str | int:
if test:
return 1
return "no value passed in for test"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |