Лучший совет, который я получил с точки зрения оптимизации:
«найдите самую медленную часть вашего кода и оптимизируйте ее, черт возьми» операторы имеют значение, поэтому, например, в одном случае они могут быть глубоко внутри 3 или более циклов for, тогда было бы хорошо пойти на хорошую оптимизацию (и прокомментировать вас logi c). В другом случае вы можете определить, следует ли выдавать ошибку в начале функции. В этом случае важна удобочитаемость.
Во-вторых, важно также, как вы оптимизируете. Способ интерпретатора рассматривает оба варианта как эквивалентные, что означает, что для удобочитаемости лучше всего использовать go. Один из простых способов выяснить это - использовать этот
import time
s = time.clock()
#your code here
print(time.clock() - s) #shows how long the code segment took to run
Это может быть интересным экспериментом, когда у вас есть вопрос по оптимизации.