gpt4 book ai didi

python - Python for循环中发生的内部操作

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:00 26 4
gpt4 key购买 nike

我从一些测试中知道下面的代码片段正在按预期工作,但我想知道这里的 python 后端发生了什么

for c in curr.getChildren():
if point in c:
change = True
curr = c

举个例子:

x = [1,2,3]
for c in x:
print ('hi')
if c == 2:
x = 2

print 语句触发 3 次,x 被重新分配给 2。python 是在内部将容器表示为某处的深拷贝,还是迭代器只是简单地内在链接到该容器的内存位置。这样安全吗?通常很好奇幕后发生了什么。

最佳答案

Python 对元素求值一次 (x) 并获得一个循环遍历的迭代器 (c)。这就是为什么您的循环没有像您希望的那样只迭代一次。

这里有几个位置可以解释这种行为。

docs.python.org

github.com/python/cpython

关于您对安全的关注,从您不会弄乱 for 循环的意义上来说,它是安全的。需要注意的是,如果您使用的是可变对象,则 for 循环可能会尝试越过对象的索引(或未到达末尾),如果您要删除数据(或添加数据) ).

关于python - Python for循环中发生的内部操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29973057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com