valores una renombrar reemplazar normalizar datos data columnas columna borrar agregar python class types lambda

python - una - reemplazar valores pandas



¿Cómo puedo probar si una variable contiene una lambda? (5)

Use el módulo de types :

from types import * assert isinstance(lambda m: m, LambdaType)

De acuerdo con los documentos, es seguro usar from types import * .

¿Hay alguna forma de probar si una variable contiene una lambda ? El contexto es que me gustaría verificar un tipo en una prueba unitaria:

self.assertEquals(lambda, type(myVar))

El type parece ser "función", pero no vi ningún tipo incorporado obvio para que coincida. Obviamente, podría escribir esto, pero se siente torpe:

self.assertEquals(type(lambda m: m), type(myVar))


def isalambda(v): LAMBDA = lambda:0 return isinstance(v, type(LAMBDA)) and v.__name__ == LAMBDA.__name__


mylambda.func_name == ''<lambda>''


Esto es años vencidos, pero callable(mylambda) devolverá True para cualquier función o método invocable, incluido lambdas. hasattr(mylambda, ''__call__'') hace lo mismo, pero es mucho menos elegante.

Si necesita saber si algo es exclusivamente un lambda, entonces mylambda.__name__ == "<lambda>" es lo que usaría.

(Esta respuesta es relevante para Python2.7.5.)


No hay necesidad de hacer ningún corte, el módulo integrado de inspección lo maneja por usted.

import inspect print inspect.isfunction(lambda x:x)