Dla osób przesiadających się z C++ czy Javy to jedna z bardziej
szokujących właściwości Pythona (a także Perla i paru innych języków
skryptowych): kod programu można zmienić w locie. Można - w szczególności -
dopisać albo podmienić metody istniejącej klasy czy funkcje zadanego
modułu.
Technika ryzykowna, łatwo prowadząca do powstawania niezrozumiałego
kodu i trudnych do interpretacji błędów. Ale zarazem bardzo przydatna,
zwłaszcza gdy trzeba zmodyfikować zachowanie jakiejś biblioteki w miejscu,
którego jej autor nie przewidział (np. ostatnio przypomniałem ją sobie
chcąc zmienić sposób w jaki Mercurial obsługuje hasła HTTP i SMTP). Monkey-patching bardzo często przydaje
się też przy testach, pozwalając zamienić prawdziwy kod komunikacyjny czy bazodanowy
zaślepkami.
W tym artykule o kilku możliwych sposobach zapisywania tej operacji.
Dalszy ciąg "Estetyczny monkey-patching" »