How do I do this? (eval() on the left hand side)
Jeff Shannon
jeff at ccvcorp.com
Thu Dec 9 15:38:09 EST 2004
Peter Hansen wrote:
> The main way I use this is in some sort of a "const" module, which
> provides access to a large set of constant information. In other
> words, in contrast to what you had in mind when you wrote the
> above, I'm dealing with neither "variables" nor information that
> _would_ best be put in a dict.
>
> [...]
>
> In general I would say that mucking with globals() like this is
> probably best restricted to constants like in this case, if at all.
Indeed, for almost every rule, there are exceptions.. Legitimate cases
also exist for using eval() and exec, though in general both of those
are better avoided. The case you describe does sound like a legitimate
use of writing to globals(), with realistic expectations of the costs
and benefits
(Actually, in your provided example, I might have const.py parse the
header file into a dict named const, and then have my modules use 'from
const import const'. But I will admit that the extra complication on
import may not be worth the "cleaner" module internals... As always,
it's a tradeoff, and each programmer must decide which costs are worth
bearing in their particular situation.)
Jeff Shannon
Technician/Programmer
Credit International
More information about the Python-list
mailing list