Это скорее концептуальный вопрос. Недавно я увидел фрагмент кода в Python (он работал в версии 2.7, и он также мог быть запущен в версии 2.5), в котором цикл for
использовал одно и то же имя для списка, который был переименован, и элемента в списке, который поражает меня как плохую практику, так и то, что не должно работать вообще.
Например:
x = [1,2,3,4,5]
for x in x:
print x
print x
Урожайность:
1
2
3
4
5
5
Теперь для меня имеет смысл, что последнее значение будет последним значением, назначенным x из цикла, но я не понимаю, почему вы сможете использовать одно и то же имя переменной для обеих частей for
и выполняйте функцию по назначению. Являются ли они в разных областях? Что происходит под капотом, что позволяет что-то подобное работать?