query regarding OOP functionality in python
David Goodger
goodger at python.org
Mon Apr 5 14:23:57 EDT 2004
Vardhman Jain wrote:
> Could someone tell me, what kind of polymorphisms does python
> allows?
According to FOLDOC (http://foldoc.doc.ic.ac.uk):
In object-oriented programming, the term [polymorphism] is used to
describe a variable that may refer to objects whose class is not
known at compile time and which respond at run time according to
the actual class of the object to which they refer.
Python fully supports this definition of polymorphism. Python also
supports "ad-hoc polymorphism" (a.k.a. operator overloading), and
parametric polymorphism, as described on the FOLDOC page for
"polymorphism".
> Does it allow multiple functions with same name and different
> arguments?
No, Python does not support "function overloading".
> Does it allow multiple functions with same name but
> different return types.
No. Python only allows one object to be bound to a name at a time. A
single function may return multiple different types if it wishes
though.
> I have tried this with constructors and failed,
> So I suppose I might need to compile the code or something like
> that to gain this feature if it exists.
Won't help. Python is a simple language, with little implicit magic.
There is no support for what you are describing in the language, no
matter how you compile it.
> I know it allows default values to function arguments but that is
> not sufficient for my purpose.
You're approaching Python with a C++/Java mindset. Don't do that. If
you try Python seriously, you'll find that you don't really need these
features.
If you absolutely must have these features, stick to C++ or Java.
-- David Goodger
More information about the Python-list
mailing list