Встроенный zip
делает именно то, что вы хотите. Если вы хотите использовать те же самые итерации вместо списков, вы можете посмотреть на itertools.izip, который делает то же самое, но дает результаты по одному.
Поскольку использование статических полей стимулирует использование статических методов. А статические методы - зло. Основной целью инъекции зависимостей является предоставление контейнеру объектов для вас и их проводка.
После того, как вы начнете использовать статические методы, вам больше не нужно создавать экземпляр объекта, а тестирование намного сложнее. Также вы не можете создавать несколько экземпляров данного класса, каждый из которых имеет различную зависимость, которая вводится (потому что поле неявно разделяется и создает глобальное состояние - также зло).
Поскольку, когда загрузчик классов загружает статические значения, контекст Spring еще не загружен. Таким образом, загрузчик классов не будет правильно вводить статический класс в bean-компонент и не будет работать.
Благодаря этому решению вы можете авторизовать статические поля весной.
@Component
public class TestClass {
private static Test test;
@Autowired
public void setTest(Test test) {
TestClass.test = test;
}
}
Согласно концепции ООП, это будет плохой дизайн, если статические переменные будут автообновлены.
Статическая переменная не является свойством Object, но является свойством класса. Пружинная автоматическая проводка выполняется на объектах, и это делает дизайн чистым, на мой взгляд. Вы можете развернуть объект с автоматическим подключением bean как singleton и достичь того же, что и его статический.