Объект str в Python 2.7 не имеет __iter__, но ведет себя как итерируемый. Почему?

Я проверял объекты str в Python и понял, что объект str в Python 2.7 не имеет ни метода __iter__(), ни метода next(), а в объектах Python 3.0 str есть метод __iter__(), и поэтому они являются итерируемыми. Тем не менее, я все еще могу использовать объекты str, как если бы они были итерируемыми в Python 2.7. Например, я могу использовать их в циклах for. Как это работает?

7
задан yasar 9 May 2012 в 01:43
поделиться