Telegram Group & Telegram Channel
В Python можно спутать две вещи: итерируемые объекты (iterables) и итераторы (iterators).

Итерируемые объекты — это объекты, которые можно перебирать, то есть из них можно извлекать значения по одному, возможно, бесконечно. Обычно итерируемыми объектами являются коллекции, такие как массивы, множества, списки и т. д.

Есть два способа сделать объект итерируемым. Первый — реализовать метод __getitem__:


class Iterable:
def __getitem__(self, i):
if i > 10:
raise IndexError
return i

print(list(Iterable()))


Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Второй способ — определить метод __iter__, который возвращает итератор. Итератор — это объект, имеющий метод __next__, который при каждом вызове возвращает следующее значение из исходного итерируемого объекта:


class Iterator:
def __init__(self):
self._i = 0

def __next__(self):
i = self._i
if i > 10:
raise StopIteration
self._i += 1
return i

class Iterable:
def __iter__(self):
return Iterator()

print(list(Iterable()))


Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Обычно итератор также имеет метод __iter__, который просто возвращает self. Это позволяет самому итератору быть итерируемым, то есть большинство итераторов также являются итерируемыми объектами.

👉@BookPython



tg-me.com/BookPython/3545
Create:
Last Update:

В Python можно спутать две вещи: итерируемые объекты (iterables) и итераторы (iterators).

Итерируемые объекты — это объекты, которые можно перебирать, то есть из них можно извлекать значения по одному, возможно, бесконечно. Обычно итерируемыми объектами являются коллекции, такие как массивы, множества, списки и т. д.

Есть два способа сделать объект итерируемым. Первый — реализовать метод __getitem__:


class Iterable:
def __getitem__(self, i):
if i > 10:
raise IndexError
return i

print(list(Iterable()))


Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Второй способ — определить метод __iter__, который возвращает итератор. Итератор — это объект, имеющий метод __next__, который при каждом вызове возвращает следующее значение из исходного итерируемого объекта:


class Iterator:
def __init__(self):
self._i = 0

def __next__(self):
i = self._i
if i > 10:
raise StopIteration
self._i += 1
return i

class Iterable:
def __iter__(self):
return Iterator()

print(list(Iterable()))


Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Обычно итератор также имеет метод __iter__, который просто возвращает self. Это позволяет самому итератору быть итерируемым, то есть большинство итераторов также являются итерируемыми объектами.

👉@BookPython

BY Библиотека Python разработчика | Книги по питону


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/BookPython/3545

View MORE
Open in Telegram


Библиотека Python разработчика Telegram | DID YOU KNOW?

Date: |

Find Channels On Telegram?

Telegram is an aspiring new messaging app that’s taking the world by storm. The app is free, fast, and claims to be one of the safest messengers around. It allows people to connect easily, without any boundaries.You can use channels on Telegram, which are similar to Facebook pages. If you’re wondering how to find channels on Telegram, you’re in the right place. Keep reading and you’ll find out how. Also, you’ll learn more about channels, creating channels yourself, and the difference between private and public Telegram channels.

NEWS: Telegram supports Facetime video calls NOW!

Secure video calling is in high demand. As an alternative to Zoom, many people are using end-to-end encrypted apps such as WhatsApp, FaceTime or Signal to speak to friends and family face-to-face since coronavirus lockdowns started to take place across the world. There’s another option—secure communications app Telegram just added video calling to its feature set, available on both iOS and Android. The new feature is also super secure—like Signal and WhatsApp and unlike Zoom (yet), video calls will be end-to-end encrypted.

Библиотека Python разработчика from us


Telegram Библиотека Python разработчика | Книги по питону
FROM USA