создаёт поле у экземпляра класса Cities. В это поле записывается значение равное экземпляру класса CityIterator, id которого равен, допустим 100e12(условно).
И каждый раз при вызове метода __iter__ у класса Cities, это поле заменяется на вновь создаваемый экземпляр класса CityIterator, id которого уже указывает на новый объект CityIterator. Поэтому id - разные.
Я правильно понял?
каждый раз когда использует я один объект - будет один id. Каждый раз когда разные - как повезет в завимисоти от того, доступен старый, как выделелилась память и др
Да, а фишка в том, что в момент создания нового старый ещё не удалился. Перезапись происходит после создания нового, поэтому id всегда будут разные.
Обсуждают сегодня