def scoped_cage(cage=None):

    def pet_function():
        print('Mary pets the ' + cage.animal + '.')
return pet_function
yield animal, partial(gotimes, scoped_cage(cage))
Локальные переменные во вложенных функциях Python