You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算航班总飞行时长报错unsupported operand type(s) for +=: 'int'和'datetime.timedelta'

报错原因

你触发类型错误的核心原因是:get_flight_time() 方法返回的是两个datetime对象相减得到的datetime.timedelta时间差类型,但你初始化total_flight_time用的是整数0,Python不支持整数和timedelta类型直接做加法运算。
另外get_total_travel_time方法也存在隐藏问题:如果行程没有航班,你会返回整数0,和有航班时返回的timedelta类型不一致,后续调用也可能触发类型错误。

修改方案
  1. 首先在导入部分补充引入timedelta类型
  2. 将两个计算时长方法的初始值,从整数0改为timedelta(0)(代表时间差类型的零值)

具体修改的代码片段

导入部分修改:

from datetime import datetime, timedelta

get_total_flight_time方法修改:

def get_total_flight_time(self):
    # 初始值改为timedelta类型的零值
    total_flight_time = timedelta(0)
    for f in self.flights:
        total_flight_time += f.get_flight_time()
    return total_flight_time

get_total_travel_time方法修改:

def get_total_travel_time(self):
    # 初始值改为timedelta类型的零值
    total_travel_time = timedelta(0)
    if len(self.flights) > 0:
        first_flight_departure = self.flights[0].get_departure_time()
        last_flight_arrival = self.flights[len(self.flights) - 1].get_arrival_time()
        total_travel_time = (last_flight_arrival - first_flight_departure )
    return total_travel_time
运行结果

修改后执行代码会输出正确结果:

Total Travel time:  7:50:00
Total Flight time:  5:20:00

内容的提问来源于stack exchange,提问作者steeplearningcurve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:36:04