import abc # 1) each canvas is responsible to animate the objects it spawns # 2) the only common base object between all canvases is the subject of the photoset class Canvas(object):
def __init__(self, locals_copy): self.locals_copy = locals_copy def __getattr__(self, name): if str(name) in dir(): return dir[str(name)] else: return self.main(str(name)) def main(self, name): return self.locals_copy[name] __metaclass__ = abc.ABCMeta @abc.abstractmethod def render(self): "add additional elements to the main canvas and animate them here"