咨询Pythonic风格的方法执行结果返回与状态校验实现方案
Pythonic风格适配示例
Python 社区遵循 EAFP(宁求宽恕,不求许可)的编码惯例,对应你的场景,直接抛出异常而非返回状态标识的实现如下:
带自定义业务异常版本(推荐)
语义更清晰,可区分转换错误和其他类型异常:
import sys from typing import List # 自定义转换异常,用于标识业务层面的转换失败 class ConvertError(ValueError): pass def get_int_list(list_data: list) -> List[int]: try: return [int(element) for element in list_data] except ValueError as e: # 附加业务报错信息后抛出,使用from保留原始异常栈 raise ConvertError("Failed to convert int elements list") from e if __name__ == "__main__": my_list = ["1", "2", "a"] try: int_list = get_int_list(my_list) except ConvertError as e: print(e) sys.exit(1) sys.exit(0)
简化版本
如果不需要额外的业务异常标识,可直接透出内置异常:
import sys from typing import List def get_int_list(list_data: list) -> List[int]: return [int(element) for element in list_data] if __name__ == "__main__": my_list = ["1", "2", "a"] try: int_list = get_int_list(my_list) except ValueError: print("Failed to convert int elements list") sys.exit(1) sys.exit(0)
核心改动优势
- 类型标注更简洁,返回值直接为目标类型,无需额外处理空值分支
- 避免漏判返回状态导致后续空值报错的问题,异常可根据业务需要向上透传
- 完全符合Python社区通用编码惯例,可读性更高
内容的提问来源于stack exchange,提问作者Vidya
相关产品推荐
相关产品推荐

