Estaba mirando un fragmento del código Python que produje, que, aunque correcto, es feo. ¿Hay una manera más pitonica de hacer esto?Forma pitónica de repetir una llamada a un método en diferentes argumentos finitos
r = self.get_pixel(x,y, RED)
g = self.get_pixel(x,y, GREEN)
b = self.get_pixel(x,y, BLUE)
t = function(r,g,b)
if t:
r2, g2, b2 = t
self.set_pixel(x,y,RED, r2)
self.set_pixel(x,y,GREEN, g2)
self.set_pixel(x,y,BLUE, b2)
El problema es la repetición del método exige get_pixel
y set_pixel
. Para su información:
RED, GREEN, BLUE = range(3)
También tenga en cuenta que me gustaría preservar la claridad y la limpieza del código.
-1 Esta es la simple adición de soluciones feos a una API feo. Es el tiempo de rediseño de la API: mira la respuesta de @Muhammad Alkarouri, o la mía. –
@John Machin: Lo siento, debería haberlo mencionado. Mi plan era primero dar una respuesta específica a la pregunta exacta y luego manejar el panorama completo y explicar los enfoques alternativos. Pero mientras escribía la primera parte, otros ya me vencieron en la segunda parte.No solo quería duplicar la misma información exacta que otros ya habían publicado en mi publicación, así que simplemente la dejé como estaba, ya que nadie más respondió la pregunta. Ahora veo que mi respuesta fue aceptada y no puedo borrar mi respuesta. Así que he incluido tu respuesta en mi publicación. ¿Eso esta bien? ¿O qué sugieres que debería hacer? –
Yo diría por el patrón de votos que su referencia a la otra respuesta está funcionando o no, por lo que no creo que deba preocuparse ahora. Y gracias por mencionarme como "otros que me ganaron" :) –