New submission from Kevin Rocard: 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). ---------- components: Library (Lib) messages: 235700 nosy: krocard priority: normal severity: normal status: open title: xml.dom.minidom.Element.ownerDocument is hiden type: enhancement versions: Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23436> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com