有没有办法将以下内容简化为两行代码,而不是四行代码?
# convert to minutes (int)
if isinstance(r1, datetime.time):
r1 = r1.minute + (r1.hour * 60)
if isinstance(r2, datetime.time):
r2 = r2.minute + (r2.hour * 60)
当然:
def accumulateMinutesIfDateTime(r):
if not isinstance(r, datetime.time):
return r
return r.minute + r.hour * 60
# ...
r1 = accumulateMinutesIfDateTime(r1)
r2 = accumulateMinutesIfDateTime(r2)
func = lambda r: r.minute + (r.hour * 60) if isinstance(r, datetime.time) else r
r1, r2 = func(r1), func(r2)
你可以让它更短,但可能不太容易理解:
r1, r2 = [r.minute + (r.hour * 60) if isinstance(r, datetime.time) else r for r in (r1, r2)]