python yieldのもう一つの使い方

636 ワード

In [6]: def return_non():
    print '-----------'
   ...:     while True:
   ...:         print '##############'
   ...:         x = yield
   ...:         print x
   ...:         print '%%%%%%%%%%%%'
   ...: 


In [8]: y = return_non()

In [9]: y
Out[9]: <generator object return_non at 0xb72ee8ec>

In [10]: y.next()
-----------
##############

In [11]: y.send('hello world')
hello world
%%%%%%%%%%%%
##############

In [12]: y.send('i am old')
i am old
%%%%%%%%%%%%
##############

In [13]: y
Out[13]: <generator object return_non at 0xb72ee8ec>