如何为仅返回True的异常抛出函数添加类型提示?
正确的类型提示写法
你原代码里的返回类型写-> True是错误的,类型提示需要指定类型而非具体值。针对这个函数,正确的类型提示写法如下:
首先给参数num指定数字类型,返回类型指定布尔类型bool:
# Python 3.10+ 写法 def can_be_used_as_divider(num: int | float) -> bool: if num == 0: raise ValueError('The number must not be zero!') return True
如果是Python 3.9及以下版本,需要从typing模块导入Union来表示多类型:
from typing import Union def can_be_used_as_divider(num: Union[int, float]) -> bool: if num == 0: raise ValueError('The number must not be zero!') return True
关键点说明
- 参数类型:
num是用来做除数的数字,所以用int | float(或Union[int, float])覆盖整数和浮点数场景。 - 返回类型:函数正常执行时返回布尔值
True,类型提示要写返回值的类型bool,而不是具体的返回值True。 - 异常处理:Python的类型提示体系不包含异常声明,异常属于运行时行为,不需要在类型提示里体现。
内容的提问来源于stack exchange,提问作者Stupid genius
相关产品推荐
相关产品推荐

