python – 嵌套函数的性能开销是多少?

python – 嵌套函数的性能开销是多少?,第1张

概述参见英文答案 > Is there an overhead when nesting functions in Python?                                    6个 在Python中,可以嵌套这样的函数: def do_something(): def helper(): .... .... 除非Python更巧妙地处理这种情况 参见英文答案 > Is there an overhead when nesting functions in Python?                                    6个
在Python中,可以嵌套这样的函数:

def do_something():    def helper():        ....    ....

除非Python更巧妙地处理这种情况,否则每次使用do_something时都必须重新创建帮助程序.事实上,这样做会影响性能,而不是在主要功能之外创建辅助功能,如果是的话,它有多棒?

解决方法 是的,在main函数中声明一个帮助器的速度比单独声明它们要慢:

### test_nested.py ###import timeitdef foo():    def bar():        pass    passprint(timeit.timeit("foo()",setup="from __main__ import foo"))### test_flat.py ###import timeitdef foo():    passdef bar():    passprint(timeit.timeit("foo()",setup="from __main__ import foo,bar"))### Shell ###✗ python3 ./test_flat.py0.42562198638916016✗ python3 ./test_nested.py0.5836758613586426

这是一个约30%的放缓.请记住,在这个简单的案例中,创建和调用函数都是解释器所做的.在任何实际使用中,差异将小得多.

总结

以上是内存溢出为你收集整理的python – 嵌套函数的性能开销是多少?全部内容,希望文章能够帮你解决python – 嵌套函数的性能开销是多少?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存