# -*- coding: Latin-1 -*-

# This barely qualifies as evil
# But it complements almost_private.py

# This turns out not to be truly private.
# The gc module is a terrible thing.

class Monkey:
    def scope():
        d = {'bananas': 5}

        def __getattr__(self, name):
            if name in d:
                return d[name]
            raise AttributeError, name
        
        def __setattr__(self, name, value):
            if name not in d:
                raise TypeError, "Monkey has no attribute %s" % (name,)
            d[name] = value
                
        
        return __getattr__, __setattr__
    __getattr__, __setattr__ = scope()
    del scope

