Python реализует эту функциональность, вызывая метод __iter__ в правильном выражении и присваивая каждому элементу переменные слева. Это позволяет определить, как настраиваемый объект должен быть распакован в назначение переменной переменной:
>>> class MyClass(object):
... def __iter__(self):
... return iter([1, 2, 3])
...
>>> a, b, c = MyClass()
>>> print a, b, c
1 2 3