[XML-SIG] Ugh! Why are DOM access methods spelled with a leading
'_'?
Jim Fulton
jim@digicool.com
Tue, 27 Jun 2000 19:06:24 -0400
Paul Prescod wrote:
>
> Jim Fulton wrote:
> >
> > ...
> >
> > If you store the parent in the child, then you are causing a circular reference
> > which is very likely to cause a leak. An API that requires implementation of
> > __getattr__ to avoid storing the parent encourages storing the parent.
>
> An API that has a getParent() method also encourages storing the parent.
> The DOM is the source ofthe problem.
I don't agree. It fact, it certainly suggests that some computation is
possible. If I want to compute the parent, I can do so without mucking
with __getattr__. OTOH, if I have to support "foo.parent" (as I
apparently do) then the only way to avoid implementing __getattr__
is to store the darn thing.
(snip)
> You can implement a DOM subset that only supports the method versions.
Noooooooooo. If I'm going to bother to implement DOM, I want it
to work with all DOM clients.
> We can easily whip up adapter proxies that make your DOMs compliant with
> the full attributes+methods API if interoperability becomes an issue. If
> you get hundreds of Python objects to support your DOM interface then we
> may think twice about being partially incompatible with them and migrate
> our users to the method version.
Whimper. I don't want *my* DOM API. I want there to be exactly *one*
official documented Python DOM API mapping. I'd prefer that the mapping
be as easy as possible to implement and use and, as a bonus, it would be
swell if it worked well with Zope, which the current API doesn't. Oh
well.
Jim
--
Jim Fulton mailto:jim@digicool.com Python Powered!
Technical Director (888) 344-4332 http://www.python.org
Digital Creations http://www.digicool.com http://www.zope.org
Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email
address may not be added to any commercial mail list with out my
permission. Violation of my privacy with advertising or SPAM will
result in a suit for a MINIMUM of $500 damages/incident, $1500 for
repeats.