I want to eval() an expression, but have some of the variables in it be lazily evaluated. E.g., class D: def __getitem__(self, name): if name == 'n': return 3 d = D() x = eval('n + 1', d) but the eval function accepts only a dictionary as the second parameter. Is there any amazing way to do this? TIA, Clarence Gardner clarence at netlojix.com