Jako embedded vývojář si začínám hrát s Pythonem, aktuálně jsem se pustil do iterátorů, generátorů, tříd atd. Přitom jsem narazil na jednu, pro mě nevysvětlitelnou věc, týkající se funkce __next__ v třídě.
Mám kód:
class Hafani(object):
def __init__(self):
self.__psi = ("Kokrspanel", "Jezevcik", "Ovcak", "Kolie", "Husky")
def __iter__(self):
self.__index = 0
return self
def __next__(self):
pes = self.__psi[self.__index]
self.__index += 1
if self.__index >= len(self.__psi):
raise StopIteration
else:
return pes
# Example of use
stekac = Hafani()
for p in stekac:
print(p, end = " ")
Pokud ho spustím, vypíší se mi všechny plemena psů kromě posledního, i když bych očekával celý komplet včetně "Husky". Asi jsem slepý, ale stále nemohu přijít na to, proč to funguje zrovna takto. Poradil by někdo zkušenější?
Děkuji moc.