Is Eval *always* Evil?
Christian Heimes
lists at cheimes.de
Wed Nov 10 18:14:36 EST 2010
Am 10.11.2010 18:56, schrieb Simon Mullis:
Yes, eval is evil, may lead to security issues and it's unnecessary
slow, too.
> # In the meantime - and as a proof of concept - I'm using a dict instead.
>
> xpathlib = {
> "houses" : r'[ y.tag for y in x.xpath("//houses/*") ]',
> "names" : r'[ y.text for y in x.xpath("//houses/name") ]',
> "footwear_type" : r'[ y.tag for y in
> x.xpath("//cupboard/bottom_shelf/*") ]',
> "shoes" : r'[ y.text for y in
> x.xpath("//cupboard/bottom_shelf/shoes/*") ]',
> "interface_types" : r'[ y.text[:2] for y in
> x.xpath("//interface/name") ]',
> }
You have two possibilities here:
* either learn more XPath. You can do everything with XPath as well,
for example "//houses/name/text()"
* use lambdas instead, for example "names" : lambda x: [y.text for y in
x.xpath("//houses/name")]
Christian
More information about the Python-list
mailing list