[Python] Chiarimento sugli iteratori
Valerio Pachera
sirio81 a gmail.com
Ven 17 Set 2021 16:57:43 CEST
Buongiorno a tutti, ho notato questa cosa:
#!/usr/bin/env python3
def test():
for x in range(0, 10):
yield x
iterator = test()
print(test)
for x in iterator:
print(x)
for x in iterator:
print(x)
-------------
Restituisce
<function test at 0x7f17dd3e81f0>
0
1
2
3
4
5
6
7
8
9
-----------
Mentre se modifico lo script con
for x in test():
print(x)
for x in test():
print(x)
-------
Ottengo
<function test at 0x7f7e59baf1f0>
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
-------
Nella mia testa pensavo fosse indifferente richiamare "iterator"
anziché "test()".
Se verifico il tipo di dato ottengo
iterator = test()
print(type(test))
<class 'function'>
------
Non mi è chiarissimo il motivo per cui, al secondo ciclo for non viene
restituito alcun dato.
Sapete darmi una dritta?
Maggiori informazioni sulla lista
Python