homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author krocard
Recipients krocard
Date 2015年02月10日.19:30:43
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1423596643.73.0.960398071264.issue23436@psf.upfronthosting.co.za>
In-reply-to
Content
Extracted from xml.dom.minidom:
~~~
Node(...):
 ...
 ownerDocument = None
 ...
Element(Node):
 __slots__=('ownerDocument', ...)
 ...
~~~
As Element declares an ownerDocument attribute in __slots__, Node's ownerDocument attribute is hidden:
~~~
class B: b=1;
class D(B): __slots__={'b'}
D().b -> AttributeError
~~~
This leads to a strange behaviour were accessing a base attribute fails with an attribute error.
Should the Node.ownerDocument attribute not be removed?
Or its name removed from the Element.__slots__ list?
Ie have the attribute in the base or the derivative, but not both.
Independent note: <https://docs.python.org/3/reference/datamodel.html#slots> says:
> When inheriting from a class without __slots__ [Node], the __dict__ attribute of that class will always be accessible, so a __slots__ definition in the subclass [Element] is meaningless.
So as for as I understand Element.__slots__ does not reduce the Element() footprint (it was introduced for that).
History
Date User Action Args
2015年02月10日 19:30:43krocardsetrecipients: + krocard
2015年02月10日 19:30:43krocardsetmessageid: <1423596643.73.0.960398071264.issue23436@psf.upfronthosting.co.za>
2015年02月10日 19:30:43krocardlinkissue23436 messages
2015年02月10日 19:30:43krocardcreate

AltStyle によって変換されたページ (->オリジナル) /