Pour m'aider à mieux comprendre lambda, j'ai écrit ce court extrait qui fait pivoter et transformer un quad (j'espère avoir le bon calcul). Maintenant, je veux remplacer les trois étapes ci-dessous avec un lambdas doublure, éventuellement en conjonction avec map(). Im utilisant un vector class mais j'espère, les fonctions sont claires quant à ce qu'ils font.Aidez-moi à lambda-nize this
self.orientation = vector(1,0)
self.orientation.rotate(90.0)
#the four corners of a quad
points = (vector(-1,-1),vector(1,-1),vector(1,1),vector(-1,1))
print points
#apply rotation to points according to orientation
rot_points = []
for i in points:
rot_points.append(i.rotated(self.orientation.get_angle()))
print rot_points
#transform the point according to world position and scale
real_points = []
for i in rot_points:
real_points.append(self.pos+i*self.scale)
print real_points
return real_points
Tellement bon python en un seul post! –
donc, à proprement parler, les générateurs sont préférés, pas les listes de compréhension :) – zweiterlinde
zweiterlinde: Donc, ses expressions de générateur> liste des compréhensions> lambdas? – Mizipzor