#!/usr/bin/env python # I've only been able to test this in version 2.3 so far def evalfunction0(a): print "Call by eval - Success! arg =",a def evalfunction3(a): def evalfunction1(a): string = "evalfunction0(a+1)" eval(string) def evalfunction2(a): string = "evalfunction1(a+1)" eval(string) # uncomment the next line to make the PREVIOUS line work! # evalfunction1(-1) string = "evalfunction2(a+1)" eval(string) def callfunction0(a): print "Function call - Success! arg =",a def callfunction3(a): def callfunction1(a): callfunction0(a+1) def callfunction2(a): callfunction1(a+1) callfunction2(a+1) callfunction3(0) evalfunction3(0)