Что именно представляет собой протокол итератора Python?

Есть объективное определение? Это реализовано как фрагмент исходного кода Python? Если так, может ли кто-нибудь произвести точные строки кода? Есть ли у всех языков, скажем, собственные протоколы итераторов операторов for?