插入变量以简单地添加文本的比较效率

时间:2018-01-13 17:00:46

标签: python python-3.x python-2.7 performance optimization

我说的是"请在此处插入您的答案"并且希望在一个程序中重复多次,这样显着更有效地打印"请在此处插入您的答案"或者用该文本创建一个变量来执行相同的功能?

#First option
answer= input("Please insert your answer here ")

#second option
prepared_question= "Please insert your answer here "
answer= input(prepared_question)

假设这会重复多次,是否会有显着更有效的选项?当然,从作者的角度来看,简单地重复使用变量要好得多,我怀疑它是否需要更多的时间。

1 个答案:

答案 0 :(得分:2)

第一个(稍微)更高效,因为在解释过程中不需要两个额外的STORE_NAMELOAD_NAME步骤。

In [3]: dis.dis("answer= input('Please insert your answer here')")
  1           0 LOAD_NAME                0 (input)
              3 LOAD_CONST               0 ('Please insert your answer here')
              6 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
              9 STORE_NAME               1 (answer)
             12 LOAD_CONST               1 (None)
             15 RETURN_VALUE

In [5]: dis.dis("prepared_question= 'Please insert your answer here';answer= input(prepared_question)")
  1           0 LOAD_CONST               0 ('Please insert your answer here')
              3 STORE_NAME               0 (prepared_question)
              6 LOAD_NAME                1 (input)
              9 LOAD_NAME                0 (prepared_question)
             12 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
             15 STORE_NAME               2 (answer)
             18 LOAD_CONST               1 (None)
             21 RETURN_VALUE

但是从功能的角度来看,如果input的消息在未来的运行中发生变化,那么最好使用一个变量,而且可能是一个函数。