Quiero tener una función antigua simple como constante de clase. Sin embargo, Python "amablemente" lo convierte en un método para mí:No se puede tener una función como atributo de clase en Python
class C(object):
a = 17
b = (lambda x : x+1)
print C.a # Works fine for int attributes
print C.b # Uh-oh... is a <unbound method C.<lambda>> now
print C.b(1) # TypeError: unbound method <lambda>() must be called
# with C instance as first argument (got int instance instead)
- ¿Hay una manera de evitar que mi función se convierta en un método?
- En cualquier caso, ¿cuál es el mejor enfoque "Pythonic" para este problema?
Pero debe considerar [estas advertencias] (http://stackoverflow.com/questions/5212071/python-class-de sign-staticmethod-vs-method/5212190 # 5212190). – senderle