I meant to add...
On 04/01/14 20:47, Alan Gauld wrote:
Its called polymorphism and is one of the most powerful advantages of
OOP since case or switch statements are one of the most fault prone
structures in procedural programming.
...
Without OOP you would need to do something like
for shape in shapes:
if shape['type'] == CIRCLE:
result = circle_area(shape['radius'])
elif shape['type'] == SQUARE:
result = square_area(shape['length'])
elif ....
But with OOP we simply call each shapes area method and
the interpreter works out which method to call:
for shape in shapes:
result = shape.area()
This reduction in code in switch statements (and similar savings in
other scenarios) is one of the reasons that OOP solutions are often much
shorter than non OOP programs for non-trivial cases.
Beginners often don't see these benefits because their short programs
only have one or two classes and the overhead of creating the classes
dwarfs the savings that might accrue. But in a big project where lots of
if/else type situations may arise the code savings can easily add up to
20-30%.
HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor