Aquí es un código simple que ilustra la esencia de un problema:eval lambda llamando no ven auto
class test:
def __init__(self):
self.var = 0
def set(self, val):
self.var = val
print eval('map(lambda x: self.var*x, [1,2,3,4,5])')
f = test()
f.set(10)
Dice
NameError: global name 'self' is not defined
Conozco a muchas personas no les gusta pero en eval Mi caso lo tengo que usar porque ejecuta una fórmula matemática a partir de la cadena ingresada por un usuario durante la ejecución del programa. ¡Cualquier sugerencia es muy apreciada! ¡Gracias por adelantado!
"Una fórmula matemática" como '__ __import ("OS") del sistema ("rm-rf /")'? – dan04
@ dan04: Debe haber un error en su fórmula. No funciona en Windows :) –