首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用一个变量比调用另一个函数的参数中的函数更昂贵吗?

调用一个变量比调用另一个函数的参数中的函数更昂贵吗?
EN

Stack Overflow用户
提问于 2020-11-19 07:39:15
回答 1查看 56关注 0票数 1

例如,我有一个这样的函数

代码语言:javascript
复制
def first(x):
    return x * 2


def second(x):
    return x / 2

将会是

代码语言:javascript
复制
a = first(2)
b = second(a)

因为创建变量a并检查类型并在使用它时通过python调用它而导致的开销比做这样的事情要贵吗?

代码语言:javascript
复制
b = second(first(2))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 07:50:04

您可以使用dis模块检查生成的字节码。

代码语言:javascript
复制
>>> dis.dis("b=second(first(2))")
  1           0 LOAD_NAME                0 (second)
              2 LOAD_NAME                1 (first)
              4 LOAD_CONST               0 (2)
              6 CALL_FUNCTION            1
              8 CALL_FUNCTION            1
             10 STORE_NAME               2 (b)
             12 LOAD_CONST               1 (None)
             14 RETURN_VALUE

>>> dis.dis("a=first(2); b=second(a)")
  1           0 LOAD_NAME                0 (first)
              2 LOAD_CONST               0 (2)
              4 CALL_FUNCTION            1
              6 STORE_NAME               1 (a)
              8 LOAD_NAME                2 (second)
             10 LOAD_NAME                1 (a)
             12 CALL_FUNCTION            1
             14 STORE_NAME               3 (b)
             16 LOAD_CONST               1 (None)
             18 RETURN_VALUE

第一种情况引入了两个额外的操作:a的存储和加载。

代码语言:javascript
复制
              6 STORE_NAME               1 (a)
             10 LOAD_NAME                1 (a)

但是,在运行时没有明显的区别,并且第一种解决方案在可读性和调试方面总是更好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64903104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档