Я использую Python 3.8.2 для Windows 10.
У меня есть следующий код:
x = range(5)
for i in x:
print(i)
del x
Ожидаемый вывод:
0
Traceback (most recent call last):
File "C:\Users\Students\test.py", line 3, in <module>
for i in x:
NameError: name 'x' is not defined
Фактический вывод :
0
1
Traceback (most recent call last):
File "C:\Users\Students\test.py", line 5, in <module>
del x
NameError: name 'x' is not defined
На первой итерации я ожидал, что del x
удалит x
, так что на второй итерации это выдаст мне ошибку в строке, for i in x:
.
Однако, это продолжает повторять, печатая 1
, затем выдает ошибку в строке, del x
.
Кажется, что он работает так же, как и любые итерируемые. Я тестировал с помощью диктов, наборов, кортежей и списков.
Я что-то здесь упускаю?
Может кто-нибудь объяснить, что происходит?