Question re: eval()
Emile van Sebille
emile at fenx.com
Fri Dec 29 15:22:24 EST 2000
I'm still not following. Will the user be typing in
something that needs specifically to be eval'd? If so, eval
won't take a UserDict or class. You may be able to populate
a dictionary by determining the variables in the expression
(see sample below). Or will it be (or could it be) a
properly formed SQL statement? Or will they be providing
parameters for information to be accessed, such as a
parameter names and range values?
#--- for simple expressions
def getEvalVars(s, sgVars=None, slVars=None):
if sgVars == None:
sgVars={}
if slVars == None:
slVars={}
stillErrors = 1
newVars = []
while stillErrors:
try:
eval(s, sgVars, slVars)
stillErrors = 0
except NameError, err:
stillErrors = 1
errDesc = str(err)
missingVar = errDesc.split("'")[-2]
slVars[missingVar] = 1
newVars.append(missingVar)
except:
stillErrors = 0
pass
return newVars
print getEvalVars('these + names + are + missing')
--
Emile van Sebille
emile at fenx.com
-------------------
"Clarence Gardner" <clarence at netlojix.com> wrote in message
news:978118012.3281608 at news.silcom.com...
> On Fri, 29 Dec 2000, Emile van Sebille wrote:
> >What are you trying to do that using a dict doesn't
address?
>
> The lazy evaluation. Not only will the values that I want
to supply
> require large database accesses to retrieve, but I don't
even know
> with what names they will be requested!
>
> Clarence Gardner
> clarence at netlojix.com
More information about the Python-list
mailing list