Christopher J. Bottaro wrote:
Wow, good advice.  One question, how is the generator class implemented so
that if assigned to a tuple/list, it knows what to do?  Is it possible to
overload the assignment operator kinda like in C++?

Tuple unpacking works with generators because generators implement the iterator protocol. Any object that implements the iterator protocol can be used in tuple unpacking:


>>> class I(object):
...     def __init__(self, n):
...         self.n = n
...         self.i = -1
...     def next(self):
...         self.i += 1
...         if self.i == self.n:
...             raise StopIteration
...         return self.i
...     def __iter__(self):
...         return self
...
>>> x, y, z = I(3)
>>> x, y, z
(0, 1, 2)

So you're not really overloading the assignment operator; you're taking advantage of something the assignment operator already does.

Steve
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to