如何写一个更好的Python函数?
然而,这并不意味着函数不能影响非局部变量或I / O流之类的事情。例如,如果上面add_three(number)的幂等版本在返回结果之前打印了结果,那么它仍然被认为是幂等的,因为当它访问I / O流时,这个访问与从函数返回的值无关。 调用print ( )只是一个副作用:除了返回值之外,还与程序的其他部分或系统本身进行了一些交互。 让我们把我们的add_three(number)示例再向前推进一步。我们可以编写下面的代码片段来确定调用add_three(number)的次数: add_three_calls = defadd_three(number): """Return *number* + 3.""" globaladd_three_calls print(f'Returning') add_three_calls +=1 returnnumber +3 defnum_calls(): """Return the number of times *add_three* was called.""" returnadd_three_calls 我们现在正在打印到控制台(一个副作用)并修改一个非局部变量(另一个副作用),但是由于这两者都不影响函数返回的值,它仍然是幂等的。 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |