Bonjour fan de lambda vous ne savez pas avoir grand chose dans le Pythonista!
Eh bien, je pense que vous utilisez __str__
ou __unicode__
pour afficher le nom de la classe. Plus précisément, je pense que nous faisons la déclaration de classe suivante.
python
class NotLambda(object):
name = u'not lambda'
def __str__(self):
return '<%s>' % self.name
Mais ne pensez-vous pas que cette déclaration est un peu redondante? Surtout def --return. Probablement, dans la plupart des cas, il s'agit d'une déclaration selon laquelle une seule ligne suffit.
Donc, au fait, lambda était pratique pour une telle déclaration. En utilisant lambda, vous pouvez écrire comme ci-dessous.
python
class UseLambda(object):
name = u'lambda'
__str__ = lambda self: '<%s>' % self.name
Je pense que lambda a le comportement suivant lorsqu'il est converti en def.
python
def not_lambda(hoge):
return hoge + 1
test_def = not_lambda
print test_def(1)
En d'autres termes, en créant une fonction et en la connectant à cette variable, vous pouvez utiliser cette variable comme une fonction. Si vous le changez en lambda, ce sera ci-dessous.
python
test_lambda = lambda hoge: hoge + 1
print test_lambda(1)
Ainsi, __str__
pourrait être défini en lambda. Pour être honnête, ça fait mal :).