Function Overloading and Python
Stefan Behnel
stefan_ml at behnel.de
Mon Feb 25 02:46:13 EST 2008
Stefan Behnel wrote:
> Allen Peloquin wrote:
>> class B
>> {
>> fun(A x, A y, A z)...
>> fun(A1 x, A y, A z)...
>> }
>>
>> class B1
>> {
>> fun(A1 x, A y, A z)...
>> }
>>
>> Such that any previous behavior is inherited, but behaves
>> polymorphically because of the single function name.
>
> Try something like this:
>
> class B(object):
> def fun(x,y,z):
> if isinstance(x, A1):
> return self._fun(x,y,z)
> # ...
>
> def _fun(x,y,z):
> # ...
>
> class B1(B):
> def _fun(x,y,z):
> # ...
Oh, well, make that:
class B(object):
def fun(self, x,y,z):
if isinstance(x, A1):
return self._fun(x,y,z)
# ...
def _fun(self, x,y,z):
# ...
class B1(B):
def _fun(self, x,y,z):
# ...
(but you already knew that anyway, didn't you?)
Stefan
More information about the Python-list
mailing list