我在用另一个函数替换来自不同模块的函数时遇到问题,这让我发疯。假设我有一个如下所示的模块bar.py:froma_package.bazimportdo_something_expensivedefa_function():printdo_something_expensive()我还有另一个看起来像这样的模块:frombarimporta_functiona_function()froma_package.bazimportdo_something_expensivedo_something_expensive=lambda:'Somethingreallycheap.'a_func
我在用另一个函数替换来自不同模块的函数时遇到问题,这让我发疯。假设我有一个如下所示的模块bar.py:froma_package.bazimportdo_something_expensivedefa_function():printdo_something_expensive()我还有另一个看起来像这样的模块:frombarimporta_functiona_function()froma_package.bazimportdo_something_expensivedo_something_expensive=lambda:'Somethingreallycheap.'a_func
一方面,我读到或听说“函数调用很昂贵”并且会影响效率(例如,onNicholasZakas'Googletechtalk)。然而,另一方面,函数/方法最好保持简短并且应该只真正执行一项任务似乎已被接受,正如here中普遍接受的那样.我是不是遗漏了什么,或者这两条建议是否相互矛盾?是否有一些经验法则可以让人们保持禅宗般的平衡? 最佳答案 适用于所有语言的一般规则是:使函数(方法、过程)尽可能小。当您添加适当的命名时,您将获得非常可维护和可读的代码,您可以在其中轻松地关注一般情况并深入到有趣的细节。使用一种庞大的方法,您始终会关注细节,