From 01fb102f1f6063b85d442baebb77958b23869dc2 Mon Sep 17 00:00:00 2001 From: Marion Date: Mon, 16 Sep 2013 09:43:59 +0000 Subject: simplify the function that executes a user-defined python function --- diff --git a/TurtleArt/tajail.py b/TurtleArt/tajail.py index 40517cd..539c126 100644 --- a/TurtleArt/tajail.py +++ b/TurtleArt/tajail.py @@ -27,21 +27,11 @@ from math import * def myfunc(f, args): ''' Run inline Python code ''' # check to make sure no import calls are made - if len(args) == 1: - myf = 'def f(x): return ' + f.replace('import', '') - userdefined = {} - exec myf in globals(), userdefined - return userdefined.values()[0](args[0]) - elif len(args) == 2: - myf = 'def f(x, y): return ' + f.replace('import', '') - userdefined = {} - exec myf in globals(), userdefined - return userdefined.values()[0](args[0], args[1]) - elif len(args) == 3: - myf = 'def f(x, y, z): return ' + f.replace('import', '') - userdefined = {} - exec myf in globals(), userdefined - return userdefined.values()[0](args[0], args[1], args[2]) + params = ", ".join(['x', 'y', 'z'][:len(args)]) + myf = ''.join(['def f(', params, '): return ', f.replace('import', '')]) + userdefined = {} + exec myf in globals(), userdefined + return userdefined.values()[0](*args) def myfunc_import(parent, f, x): -- cgit v0.9.1