Ich starrte auf ein Stück Python-Code, den ich produzierte, der, obwohl korrekt, hässlich ist. Gibt es eine mehr pythische Art, dies zu tun?Pythonischer Weg, einen Methodenaufruf auf verschiedenen endlichen Argumenten zu wiederholen
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)
Das Problem ist, die Wiederholung des Verfahrens zur get_pixel
aufruft und set_pixel
. Zu Ihrer Information:
RED, GREEN, BLUE = range(3)
Beachten Sie auch, dass ich Code Klarheit und Sauberkeit bewahren möchte.
-1 Dies wird lediglich das Hinzufügen hässliche Abhilfen zu einem hässlichen API. Es ist API-Redesign-Zeit - siehe die Antwort von @Muhammad Alkarouri, oder meins. –
@John Machin: Entschuldigung, ich hätte das erwähnen sollen. Mein Plan war, zuerst eine genaue Antwort auf die genaue Frage zu geben und dann das Gesamtbild zu behandeln und die alternativen Ansätze zu erklären. Aber während ich den ersten Teil tippte, schlugen mich schon andere auf den zweiten Teil.Ich wollte nicht nur genau die gleichen Informationen kopieren, die andere bereits in meinem Post gepostet hatten, also habe ich sie einfach so belassen wie sie war, denn niemand anders hat die Frage beantwortet. Jetzt sehe ich, dass meine Antwort akzeptiert wurde und ich meine Antwort nicht löschen kann. Also habe ich deine Antwort in meinen Beitrag aufgenommen. Ist das in Ordnung? Oder was schlägst du vor, dass ich tun sollte? –
Ich würde durch das Muster der Stimmen sagen, dass Ihre Verweisung auf die andere Antwort funktioniert oder nicht gebraucht wird, also denke ich, dass Sie sich jetzt darüber nicht sorgen sollten. Und danke, dass du mich als "andere, die mich geschlagen haben" erwähnt hast :) –