Я хочу назначить дюжину свойств узлу lxml. Лямбда используется для упрощения ввода текста. Операции присваивания комментариев в порядке, но использование lambda sa сделает исключение. Знает ли кто-нибудь, возможно ли использовать лямбда в этом случае? Спасибо, продвинутый!Как использовать метод eval с глобальными параметрами в python
sa = set_attr = lambda n, v: eval("etp.xpath(u'/Recipe_Definition/%s')[0].text = u'%s'" % (n, v), {u'etp':etp})
#etp.xpath(u'/Recipe_Definition/Author')[0].text = rc.author
#etp.xpath(u'/Recipe_Definition/Comment')[0].text = rc.comment
sa(u'Author', rc.author)
sa(u'Comment', rc.comment)
Исключение составит:
sa = set_attr = lambda n, v: eval("etp.xpath(u'/Recipe_Definition/%s')[0].text = u'%s'" % (n, v), {u'etp':etp})
File "<string>", line 1
etp.xpath(u'/Recipe_Definition/Author')[0].text = u'admin'
Почему 'Eval()' ** на всех ** здесь? Это не нужно. –
Просто хотите уменьшить коды ввода. Это немного переполнено. :) – Erxin
unicode (v) не работает. – Erxin