[Zope] Extending Zope system code without editing
Tue, 04 Mar 2003 10:12:41 -0800
At 08:50 AM 3/4/2003, Dennis Allison wrote:
>Not quite... How do I modify a class defined in lib/python/StructuredText
>or lib/python/ZPublisher or the like with the minimum of fuss and without
>patching the actual distributed Zope system code...
If you're looking for a way to change the behavior of an object without
making *any* changes to the source code, I'm pretty sure that subclassing
is all that's available. It is possible to define objects such that they
allow certain methods to be overridden by ZMI objects, but that is special
behavior that must be explicitly provided in the product.
For my money, inheritance is about as low-impact a mechanism as one can
hope to find. Unless I'm not understanding what you're trying to do or
what issues this approach raises... in which case, let me know.
If the major stopping point here is concern about hosing Zope, there are
several things you can do to mitigate the potential harm:
1. Work on a test installation
2. Use comments liberally
3. Use a tool like rcs or cvs to provide version control
4. Refine your technique on a trivial product like Boring
There's no better way to learn how Zope really works than to rip into the
source. My advice would be to go for it.