[Python-Dev] Monkeypatching idioms -- elegant or ugly?
glyph at divmod.com
glyph at divmod.com
Tue Jan 15 16:59:53 CET 2008
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 <somewhere> import <someclass>
>
>class <newclass>(<someclass>):
> __metaclass__ = monkeypatch_class
> def <method1>(...): ...
> def <method2>(...): ...
> ...
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.
More information about the Python-Dev
mailing list