Python TypeError问题排查:NoneType与int无法比较的原因分析
TypeError: '>' not supported between NoneType and int —— 错误类型与原因分析
错误类型
这是TypeError,属于Python类型兼容性错误,当代码尝试对两种不支持该操作的类型执行运算时触发,这里具体是NoneType(空值类型)和int(整数类型)之间无法使用>比较运算符。
产生原因
这个错误并非你的业务代码逻辑问题,而是Visual Studio 2022集成的Python调试工具(debugpy依赖的pydevd库)的内部bug:
在调试过程中,工具的collect_try_except_info函数里,变量line被意外赋值为None,但代码仍尝试将其与整数max_line进行大小比较,从而触发了类型错误。
从你的程序输出Total Vehicles: 4321和Total Closings: 9可以看出,你的业务代码已经正常执行完成,这个错误是调试工具在后台收集try-except块调试信息时出现的异常。
你的业务代码验证(逻辑正常)
main.py核心代码:
from bridgePackage.bridge import * if __name__ == "__main__": close_count = 0 total_count = 0 start_count = BridgeMonitor() for i in range(100): try: vehicle_count = start_count.getVehicleCount() except Exception as e: pass close_count += 1 else: total_count += vehicle_count print("Total Vehicles: ", total_count) print("Total Closings: ", close_count)
bridge.py核心代码:
import random class BridgeMonitor(): def __init__(self): pass def getVehicleCount(self): if random.randint(100, 200) % 10 == 0: raise Exception("Bridge is closed") return random.randint(0, 100)
以上代码逻辑无问题,程序能正常完成计算并输出结果。
内容的提问来源于stack exchange,提问作者MichaelRocks
相关产品推荐
相关产品推荐

