【问题标题】:Comparative efficiancy with inserting variables to simply adding text插入变量以简化添加文本的比较效果
【发布时间】:2018-01-13 17:00:45
【问题描述】:

假设我使用短语“请在此处插入您的答案”并希望在程序中重复多次,打印“请在此处插入您的答案”或创建具有该文本的变量来执行相同的功能?

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

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

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

【问题讨论】:

  • 前者耗时稍长,后者在不需要的时候也会占用内存。两者都不够重要。后者更好,因为它可以更轻松地更改所有消息作为一个组。

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


【解决方案1】:

第一个(稍微)效率更高,因为它在解释过程中不需要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 的消息在以后的运行中会发生变化,那么最好使用一个变量,也可能是一个函数。

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 2022-01-20
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多