为什么函数应该返回一致类型的值?满足以下两个规则。
规则1-函数具有“类型”-输入映射到输出。它必须返回一致的结果类型,否则它不是函数。一团糟。
从数学上讲,我们说一些函数F是从域D到范围R的映射
F: D ->R。域和范围构成函数的“类型”。输入类型和结果类型与名称或主体一样,对于函数的定义至关重要。
规则2-当您遇到“问题”或无法返回适当的结果时,请引发异常。
def x(foo): if 'bar' in foo: return (foo, 'bar') raise Exception( "oh, dear me." )
您 可以 违反上述规则,但是长期维护和理解的代价是天文数字。
“返回None会不会更便宜一些?” 错误的问题。
关键 不是 要以清晰,可读,明显的代码为代价来优化内存。