【发布时间】:2015-03-09 17:27:07
【问题描述】:
假设我定义了一个函数f(x),它在语法上是正确的。我想确保f 在“功能上”工作,因为它的输出完全取决于输入x。
有时,如果f 的定义很复杂,可能会在其定义中无意中(由于拼写错误,或者只是不够小心)引用了一些外部变量,这可能会导致难以发现的错误.
是否有任何工具、任何“指令编译指示”(可以这么说)或任何“最佳实践”来确保不会发生这种情况?
例子:
xx = 1.0
def f(x, y, p=1):
return xx * y**p # A typo here: should be x * y**p
如果在python中没有简单的方法来实现这一点,那么哪些语言有这样的功能?据我所知,C、C++ 和 Fortran 没有这个。 Fortran 95 有纯子程序和函数,但程序员用它来“承诺”子程序/函数不会修改任何外部变量,而子程序/函数仍然可以从中取值。
【问题讨论】:
-
好吧,总是有快速而肮脏的方式
标签: python debugging syntax functional-programming functional-testing