2024-11-30 12:43:35
您没有回答“为什么”后面的问题
要说“为什么”,就是生成了一个新的迭代器对象,和之前的列表仅有数据相同,其他完全不同
iter()不就是返回列表对象的地址吗?把这个列表与一个变量绑定,这个变量怎么就成迭代器了?而且还凭空多出了一个next方法!
iter()是生成迭代器的函数,你说的返回对象地址的是id()
而且严格来讲id()返回的是对象的标识符(唯一,不会重复),也不是内存中的地址
哪具体来讲,对列表调用iter()函数,它是怎么生成这个新的迭代器对象的?
假设b是一个列表,通过返回值,像a=iter(b)这样的形式,之后就可以对a进行迭代
执行a=iter(b),实质是执行b.__iter__()方法,这个方法的代码块是什么?
啊哈哈这个是python官方的代码,我就不清楚了,有兴趣可以在python文件目录里面翻一下看看能不能找到
您的回答很有启发性,非常感谢!
2024-11-30 12:59:44
2024-11-30 18:07:13