#loops #for-loop #code-cleanup
Вопрос:
Мои примеры из Python, но я думаю, что эта концепция применима к большинству языков. Предположим, у меня есть следующий сценарий
for element in big_list: temp_var=something # This remains constant throughout the iterations # Looping clause
Здесь- temp_var
постоянная переменная, необходимая в цикле. Но если он остается постоянным, должен ли я определить его непосредственно перед запуском for
цикла? Два противоречащих друг другу принципа здесь таковы
- Переменные должны быть определены с наименьшей возможной областью действия, чтобы не заполнять пространство имен. Это аргумент для выполнения описанных выше действий, который также приближает переменную к контексту использования.
- Но определение внутри цикла требует повторной инициализации и распределения на каждой итерации. Или это что-то, что компилятор/интерпретатор оптимизирует, чтобы я все равно мог закрыть на это глаза?
Ответ №1:
Поскольку переменная не изменится внутри цикла, я определенно решу определить ее перед циклом. Кроме того, причина 1 непригодна для использования, если переменная не будет выделена до выхода из цикла, я имею в виду, что она останется живой после цикла. После выхода из цикла вы можете отменить настройку переменной. Итак, мой подход будет таким:
temp_var = something # This remains constant throughout the iterations for element in big_list: # Looping clause # loop ended del temp_var # If it's not needed anymore
Мне жаль, что я не управляю python, но я думаю, что этот «код» легко понятен и применим практически к любому языку.