Re:Ruby vs. Python comes down to the for loop
by teddyh on Friday November 12, 2021 @12:17PM
(#29201855)
AFAIK, there is no reason to use the form “for el in self._list: yield el”, unless you are running Python 3.2 or older.
Why not:
each = self._list
Or, if you need to be able to re-assign self._list to a new object: @property
def each(self):
return self._list
Or, if you for some reason need it to return an iterator: @property
def each(self):
return iter(self._list)
Or, if you really want it to be a generator function: @property
def each(self):
yield from self._list
My take on it:
It's even less verbose than the Ruby equivalent in the original article, thanks to the indentation-defined blocks.