在“Think Python:如何像计算机科学家一样思考”中,作者将后置条件定义为:
A requirement that should be satisfied by the function before it ends.
他还指出:
Conversely, conditions at the end of the function are postconditions. Postconditions include the intended effect of the function (like drawing line segments) and any side effects (like moving the Turtle or making other changes).
因此,假设我们有一个名为 factorial 的函数,它有一个名为 n 的必需参数,这不是它预期的后置条件它必须(即必须)返回一个正整数,表示从 1 到 n 的数字的乘积? 阶乘结束后这个要求不就满足了吗?
这个定义正确吗?
将后置条件定义为“函数结束后应满足的要求”。对吗?
注意:总的来说,我是编程初学者,尤其是 Python。
最佳答案
后置条件是“在函数结束时必须为真的要求”,即:在函数结束的那一刻,并且没有发生任何其他事情,函数的后置条件必须为真。
您书中的定义实际上与此有些一致:如果函数在结束之前满足后置条件,并且该函数不会执行任何会使条件为 false 的操作,那么当然,后置条件在函数结束时为真。
您的定义也与此一致,因为在函数结束后,其后置条件必须为真。
我认为这里的主要问题是“满足”这个词的定义。如果我们将“满足条件”理解为“使该条件为真”(这似乎是您的书使用的定义),那么后置条件必须在函数运行时和返回之前的某个时刻变为真,以便它可以在函数执行结束时为 true。如果您将“满足”视为“使条件为真”(这似乎是您使用该词的方式),那么您的定义就有意义 - 在函数结束后,其后置条件必须为真。
语义!
关于python - 在Python中, "A requirement that should be satisfied by the function before it ends."是后置条件的正确定义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528001/