Image

Imagezelych wrote in Imageru_python

Заморочка с yield'ой

Добрый день, уважаемые.

У меня есть вот такой кусочек кода:
def cons (x, xs):
    yield x
    while True:
        yield xs.next ()


cons_with_const = lambda c: lambda xs: cons (c, xs)


def main ():    
    f = cons_with_const (1)
    x = iter ([])

    print list (f(f(f(x))))

    while len (list (x)) < 5:
        print list (x)
        x = f (x)

main ()


И вопрос к нему: чем отличается f(..f(x))..) от x = f (x) в цикле?
Откуда такое странное поведение?
Это где-нибудь подробно описано?