Делает ли python более компактным более эффективным? - PullRequest
1 голос
/ 20 июня 2020

Игнорируя читабельность кода, стоит ли удалять избыточные переменные?

Например. преобразование этого кода:

seconds = (milisec / 1000) % 60
minutes = milisec // (1000 * 60)
name = "{:>3}-{:0>5.2f}".format(minutes, seconds)

в:

name = "{:>3}-{:0>5.2f}".format(
    milisec // (1000 * 60), # minutes
    (milisec / 1000) % 60,  # seconds
    )

Ответы [ 3 ]

1 голос
/ 20 июня 2020

С точки зрения времени выполнения, компактный код на немного быстрее, чем длинный код. Быстрая оценка может быть такой:

введите описание изображения здесь

При этом читаемость кода имеет значение . Это одна из вех кода Python. Отладка, обслуживание, командная работа (и это лишь некоторые из них) позволяют улучшить читаемость кода.

0 голосов
/ 20 июня 2020

Да, ваш второй фрагмент кода, как вы говорите, более компактный, будет немного более эффективным, поскольку присвоение переменных соответствует некоторым машинным инструкциям.

from timeit import timeit

def function():

    milisec = 173000

    seconds = (milisec / 1000) % 60
    minutes = milisec // (1000 * 60)
    name = "{:>3}-{:0>5.2f}".format(minutes, seconds)


print(timeit(stmt='function()', setup='from __main__ import function', ))



def function2():
    milisec = 173000
    name = "{:>3}-{:0>5.2f}".format(
    milisec // (1000 * 60), # minutes
    (milisec / 1000) % 60,  # seconds
    )

print(timeit(stmt='function2()', setup='from __main__ import function2', ))

заметьте некоторую разницу при одном запуске пакетов ( в секундах)

enter image description here

0 голосов
/ 20 июня 2020

Создание переменных занимает мало места в памяти, поэтому будет быстрее, если вы этого не сделаете. Однако это действительно небольшая разница.

...