On 7 Aug., 21:25, Paul Rubin <http://[EMAIL PROTECTED]> wrote: > Terry Reedy <[EMAIL PROTECTED]> writes: > > So when the initializers for instances are all 'nice' (as for range), > > go for it (as in 'Age(10)'). And test it as you are by eval'ing the > > rep. Just accept that the eval will only work in contexts with the > > class name bound to the class. For built-in like range, it always is, > > by default -- unless masked by another assignment! > > Eval is extremely dangerous. Think of data from untrusted sources, > then ask yourself how well you really know where ALL your data came > from. It's preferable to avoid using it that way. There have been a > few "safe eval" recipes posted here and at ASPN. It would be good if > one of them made it into the standard library. Note that pickle > (which would otherwise be an obious choice for this) has the same > problems, though not as severely as flat-out evalling something.
Thank you for pointing out the dangers of eval. I think you are right to caution about it. In my particular case it is a closed-loop system, so no danger there, but that certainly could have been an issue. That caution should perhaps be mentioned in http://docs.python.org/lib/built-in-funcs.html -- http://mail.python.org/mailman/listinfo/python-list