[Tutor] eval use (directly by interpreter vs with in a script)

Danny Yoo dyoo at hashcollision.org
Mon Nov 3 19:57:25 CET 2014


On Mon Nov 03 2014 at 10:48:29 AM Danny Yoo <dyoo at hashcollision.org> wrote:

> On Mon Nov 03 2014 at 10:04:41 AM Alan Gauld <alan.gauld at btinternet.com>
> wrote:
>
>> On 03/11/14 17:33, Albert-Jan Roskam wrote:
>>
>> > I sometimes do something like
>> > ifelse = "'teddybear' if bmi > 30 else 'skinny'"
>> > weightcats = [eval(ifelse) for bmi in bmis]
>> >
>> > Would this also be a *bad* use of eval? It can be avoided, but this is
>> so concise.
>>
>

> Consider if 'bmi' were ever controlled from the outside world.  At the
> very worst, the normal function approach will raise a runtime error, but
> that's it.  In contrast, the eval approach can take over your machine.
>


I should be a bit more careful in saying this.  I should have said:
"Consider if 'ifelse'" were ever controlled from the outside world...".  My
apologies for writing a bit too fast there.

In any case, the other comments still stand.  You want to use functions for
cases like the above.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20141103/a06ae035/attachment-0001.html>


More information about the Tutor mailing list