Trouble with inheritance and self
Boethius
boethius at techie.com
Fri Jan 17 08:04:31 EST 2003
I have 2 classes (A and B). Both have a render method that returns a
string.
The only difference between A and B's render is the first part of the
string (header).
B inherits from A and uses A's render with its own header (see code
below). However, I get a weird error:
Traceback (most recent call last):
File "<pyshell#23>", line 1, in ?
b.render()
File "<pyshell#19>", line 7, in render
return A.render(self, header=self._header)
File "<pyshell#17>", line 7, in render
return header(self) + 'Foo Bar Baz'
TypeError: _header() takes exactly 1 argument (2 given)
What am I doing wrong? O:-)
TIA
---------code-------------------------------------------------------
class A(object):
def _header(self):
return "A's header"
def render(self, header = _header):
return header(self) + 'Foo Bar Baz'
class B(A):
def _header(self):
return "B's header"
def render(self):
return A.render(self, header=self._header)
b = B()
b.render()
Traceback (most recent call last):
File "<pyshell#23>", line 1, in ?
b.render()
File "<pyshell#19>", line 7, in render
return A.render(self, header=self._header)
File "<pyshell#17>", line 7, in render
return header(self) + 'Foo Bar Baz'
TypeError: _header() takes exactly 1 argument (2 given)
More information about the Python-list
mailing list