Re: Accessing 'mangled' class attrbutes
- From: "Gerard Flanagan" <grflanagan@xxxxxxxxxxx>
- Date: 1 Mar 2006 09:50:31 -0800
Steve Juranich wrote:
Gerard Flanagan wrote:
I would like to do the following:
from elementtree.SimpleXMLWriter import XMLWriter
class HtmlWriter(XMLWriter, object):
def write_raw(self, text):
super( HtmlWriter, self ).flush()
super( HtmlWriter, self ).__write(text)
but because of the name-mangling caused by '__write' I get:
AttributeError: 'super' object has no attribute '_HtmlWriter__write'.
Is there any simple way round this situation in general?
(I just want to write out a HTML 'DOCTYPE' declaration)
Try: (not the Python keyword, but a directive to you)
super(HtmlWriter, self)._XMLWriter__write(text)
In general, to access the name-mangled members, simply add
_<class_name> to the front of the member name and you should be able to get
at it. But be careful, since this is a reference to the base class, so if
it's inherited from some other class, you'll need to know from which class
the member is inherited.
HTH
--
Steve Juranich
Tucson, AZ
USA
I tried that Steve but it didn't work, and i don't think I can do what
I want in any case. There is no method '__write' in the base class, it
is only declared as an instance attribute in the constructor, like so:
def __init__(self, file, encoding="us-ascii"):
...
self.__write = file.write
...
I tried putting '__write = None' at the class level (in the base class
XMLWriter) but then, although '_XMLWriter__write' appears in
'dir(HtmlWriter)', I get 'NoneType is not callable'.
I also tried 'def __write(self, text) : pass ' in the base class, but
then the code runs but doesn't write the text I want - and anyway, if
I'm going to change the base class, then i may as well just add the
'write_raw' method to the base directly!
It's just some toy code at any rate, and I've learnt something new!
Thanks for your reply.
Gerard
.
- Follow-Ups:
- Re: Accessing 'mangled' class attrbutes
- From: Steve Juranich
- Re: Accessing 'mangled' class attrbutes
- References:
- Accessing 'mangled' class attrbutes
- From: Gerard Flanagan
- Re: Accessing 'mangled' class attrbutes
- From: Steve Juranich
- Accessing 'mangled' class attrbutes
- Prev by Date: Re: Cross compile generation of .pyc from .py files...
- Next by Date: Re: Trouble with numpy-0.9.4 and numpy-0.9.5
- Previous by thread: Re: Accessing 'mangled' class attrbutes
- Next by thread: Re: Accessing 'mangled' class attrbutes
- Index(es):
Relevant Pages
|