Прежде всего, удалите return
, это не обязательно.
Ваша проблема не в test()
, а в том, как вы это называете. Не звоните test()
.
Сделайте что-то вроде:
for item in test():
print item
И вы получите по одному предмету за раз. То, что это делает, в основном:
from exceptions import StopIteration
it = iter(test())
while True:
try:
item = it.next()
except StopIteration:
break
print item