run a string as code?
py_genetic
conor.robinson at gmail.com
Mon Jul 17 19:30:59 EDT 2006
py_genetic wrote:
> mtbeedee at gmail.com wrote:
> > py_genetic wrote:
> > > How can you make python interpret a string (of py code) as code. For
> > > example if you want a py program to modify itself as it runs. I know
> > > this is an advantage of interpreted languages, how is this done in
> > > python. Thanks.
> >
> > This might do it...
> >
> > >>> print eval.__doc__
> > eval(source[, globals[, locals]]) -> value
> >
> > Evaluate the source in the context of globals and locals.
> > The source may be a string representing a Python expression
> > or a code object as returned by compile().
> > The globals must be a dictionary and locals can be any mappping,
> > defaulting to the current globals and locals.
> > If only globals is given, locals defaults to it.
>
> For example each time this line is interpreted I would like to use the
> new value of the state var which is a global var. How can I force
> state to be identified and used in this string.
>
> r_table = h5file.root.state_raw_records.neg_records
>
> r_table = eval("h5file.root.state_raw_records.neg_records") ??
> r_table = h5file.root.eval("state")_raw_records.neg_records ?? eval is
> not a part of root
>
> dont think either of these is very logical? Any ideas? Possibly the
> parser mod?
Got it!
tmp = "h5file.root."+state+"_raw_records.pos_records"
r_table = eval(tmp)
works great thanks for the help!
More information about the Python-list
mailing list