[Python-Dev] Re: PEP 282 comments

Kevin Butler kbutler@campuspipeline.com
Fri, 22 Mar 2002 11:22:55 -0700


Following up on my own message:

[Kevin Butler]

> the "simple subclass" now just needs to override _log to do
> advanced things with other optional arguments.

I realized that this is a significant issue.  In library design,
the "Open-Closed" principle is really important - the code
should be open to extension, but is closed to modification.

By adding the **kwargs to the convenience methods,
the Logger opens itself to change and enables all subclasses 
to extend the interface by overriding _log with more keyword
arguments.  Without **kwargs, subclasses have to override
_log and every one of the convenience methods (1.5K of duplicated code).

Setting-myself-up-for-YAGNI-ly y'rs,

kb