[Python-Dev] Monkeypatching idioms -- elegant or ugly? (original) (raw)

Steve Holden steve at holdenweb.com
Tue Jan 15 17:17:02 CET 2008


glyph at divmod.com wrote:

On 03:37 pm, guido at python.org wrote:

I think it's useful to share these recipes, if only to to establish whether they have been discovered before, or to decide whether they are worthy of a place in the standard library. I didn't find any relevant hits on the ASPN Python cookbook.

from import class (): metaclass = monkeypatchclass def (...): ... def (...): ... ... I've expressed this one before as "class someclass(reopen(someclass)):", but have thankfully never needed to actually use that in a real program. It's been a helpful tool in explaining to overzealous Ruby-ists that "reopenable" classes are not as unique as they think. My feelings on monkeypatching is that it should feel a little gross when you have to do it, so the code I've written that does monkeypatching for real is generally a bit ugly.

Yes, monkeypatching should never be formalized to the point where novices see it as other than a tool of last resort. Otherwise a user base will grow that uses monkeypatching instead of subclassing, for example (shudder).

regards Steve

Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/



More information about the Python-Dev mailing list