Python 中类与方法的深入探究
1. 纯函数与修饰器
在处理时间值的计算时,我们会用到两种不同类型的函数:纯函数和修饰器。首先来看纯函数,以 add_time
函数为例,最初的简单原型如下:
def add_time(t1, t2):
sum = Time()
sum.hour = t1.hour + t2.hour
sum.minute = t1.minute + t2.minute
sum.second = t1.second + t2.second
return sum
这个函数创建了一个新的 Time
对象,初始化其属性并返回该对象的引用。它不修改传入的任何对象,仅返回一个值,因此被称为纯函数。不过,这个版本存在问题,当秒数或分钟数相加超过 60 时,结果就会出错,例如:
start = Time()
start.hour = 9
start.minute = 45
start.second = 0
duration = Time()
duration.hour = 1
duration.minute = 35
duration.second = 0
done = add_time(start, duration)
print_time(done)
输出结果可能是 10:80:00
,这显然不是我们期望的。改进后的版本如下: