[Tutor] A slight bug in IDLE

Dave Angel davea at davea.name
Sun Jul 14 14:19:58 CEST 2013


On 07/14/2013 04:27 AM, Jim Mooney wrote:
> On 13 July 2013 22:16, Dave Angel <davea at davea.name> wrote:
>
> That's monkey-patching.  You're reaching inside the module and modifying
>> it.
>
>
> That's interesting. I saw that phrase and wondered what it was. Now I know
> ;')  Actually, I did refactor the numbers program into disparate functions.
> That's why I started using main(), so I could import it and just use the
> functions. That test would have been impossible if everything was still
> mashed up. In fact, once I refactored, I saw how easy it would be to test
> like that. But callbacks look interesting. I'll have to try them.

Note that callbacks is just one approach to writing flexible modules.
Another approach is writing the behavior into a class which may be 
subclassed.  The user then writes a subclass in which he/she has written 
some overriding methods.

If you want to see a sample of how these are done, study any GUI library.

>
> Except using a callback would mean editing the inputter module, which I am
> pretending is some module code I'm importing but don't want to mess with.

Exactly.  So you're simulating what it's like to use a module whose 
author didn't plan ahead for your particular type of customization.

> So I just import it and do the so-called monkey patch without actually
> editing the module. My thought was I could do quick tests and dummy  inputs
> without changing the module itself.
>


-- 
DaveA



More information about the Tutor mailing list