#!/usr/bin/env python3
from inspect import getgeneratorstate
def coroutine( func) :
def inner( *args, **kwargs) :
g = func( *args, **kwargs)
g.send ( None )
return inner
@ coroutine
def average( ) :
count = 0
summ = 0
average = None
print ( 'init' )
while True :
try :
x = yield average
except StopIteration :
print ( 'Done' )
else :
count += 1
summ += x
average = round ( summ / count, 2 )
g = average( )
print ( getgeneratorstate( g) )
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKZnJvbSBpbnNwZWN0IGltcG9ydCBnZXRnZW5lcmF0b3JzdGF0ZQoKZGVmIGNvcm91dGluZShmdW5jKToKICBkZWYgaW5uZXIoKmFyZ3MsICoqa3dhcmdzKToKICAgIGcgPSBmdW5jKCphcmdzLCAqKmt3YXJncykKICAgIGcuc2VuZChOb25lKQogIHJldHVybiBpbm5lcgoKQGNvcm91dGluZQpkZWYgYXZlcmFnZSgpOgogIGNvdW50ID0gMAogIHN1bW0gPSAwCiAgYXZlcmFnZSA9IE5vbmUKICBwcmludCgnaW5pdCcpCgogIHdoaWxlIFRydWU6CiAgICB0cnk6CiAgICAgIHggPSB5aWVsZCBhdmVyYWdlCiAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKICAgICAgcHJpbnQoJ0RvbmUnKQogICAgZWxzZToKICAgICAgY291bnQgKz0gMQogICAgICBzdW1tICs9IHgKICAgICAgYXZlcmFnZSA9IHJvdW5kKHN1bW0gLyBjb3VudCwgMikKCgpnID0gYXZlcmFnZSgpCnByaW50KGdldGdlbmVyYXRvcnN0YXRlKGcpKQ==