Re: Accessing 'mangled' class attrbutes
- From: "Gerard Flanagan" <grflanagan@xxxxxxxxxxx>
- Date: 1 Mar 2006 12:20:36 -0800
Steve Juranich wrote:
Gerard Flanagan wrote:
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
Make sure you're calling the super's constructor before you try and access
the mangled member. Then (I forgot this part), you can just call the
mangled member from `self'. Example follows.
<foo.py>
class A(object):
def __init__(self):
self.__foo = lambda x, y : x + y
class B(A):
def __init__(self, x, y):
# Make sure you're calling the super's constructor first.
super(B, self).__init__()
self.sum = self._A__foo(x, y)
</foo.py>
7import foo
b = foo.B(3, 4)
b.sum
--
Steve Juranich
Tucson, AZ
USA
It's all becoming clear! Yes, calling the base constructor was all I
needed to do:
class HtmlWriter(elementtree.SimpleXMLWriter.XMLWriter, object):
def __init__(self, file):
super( HtmlWriter, self).__init__(file)
def write_raw(self, text):
self.flush()
self._XMLWriter__write(text)
-works a charm. Appreciate your help Steve, thanks again.
Gerard
.
- References:
- Accessing 'mangled' class attrbutes
- From: Gerard Flanagan
- Re: Accessing 'mangled' class attrbutes
- From: Steve Juranich
- Re: Accessing 'mangled' class attrbutes
- From: Gerard Flanagan
- Re: Accessing 'mangled' class attrbutes
- From: Steve Juranich
- Accessing 'mangled' class attrbutes
- Prev by Date: Re: calling a class method
- Next by Date: Proper class initialization
- Previous by thread: Re: Accessing 'mangled' class attrbutes
- Next by thread: Re: Accessing 'mangled' class attrbutes
- Index(es):
Relevant Pages
|