All pastes #1647737 Raw Edit

robertj

public text v1 · immutable
#1647737 ·published 2009-10-29 12:41 UTC
rendered paste body
"""@volatile decerator for storing objects in memoryusage is as follows:from game.gamesrc.parents.rhns.volatile import volatileclass VolatileCow:    def __init__(self, scriptlink):        self.scriptlink = scriptlink        self.name = "Betsy"class CowStall(AnEvenniaObject):    @volatile    def cow(self):        return VolatileCow(self.scripted_obj)"""def volatile(func):    _memo = {}    def _memoized(scriptlink, *args):        id = (scriptlink.scripted_obj.id,func.__name__)        if id in _memo:            return _memo[id]        else:            return _memo.setdefault(id, func(scriptlink, *args))    return property(fget=_memoized)