Python 类与方法:从基础到高级应用
1. 调试与不变量
在编程中,有时将问题变得更复杂或更通用反而会让其更容易解决,因为这样可以减少特殊情况和出错的机会。对于时间对象(Time object),一个格式良好的时间对象应满足以下条件:分钟和秒的值在 0 到 60 之间(包含 0 但不包含 60),小时为正数,且小时和分钟应为整数值,秒可以有小数部分。这些要求被称为不变量(invariant),因为它们在程序执行过程中应该始终为真。
我们可以编写代码来检查这些不变量,以帮助检测错误并找出原因。例如,下面的 valid_time 函数用于检查时间对象是否违反了不变量:
def valid_time(time):
if time.hours < 0 or time.minutes < 0 or time.seconds < 0:
return False
if time.minutes >= 60 or time.seconds >= 60:
return False
return True
在每个函数的开头,我们可以检查参数是否有效,例如:
def add_time(t1, t2):
if not valid_time(t1) or not valid_time(t2):
raise ValueError, 'invalid Time object in add_
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



