Not fully OO ?
Duncan Booth
duncan.booth at invalid.invalid
Sat Sep 20 09:13:08 EDT 2008
candide <candide at free.invalid> wrote:
> Excerpt quoted from http://www.astro.ufl.edu/~warner/prog/python.html :
>
> "About Python: Python is a high level scripting language with object
> oriented features.
> (...)
> Python supports OOP and classes to an extent, but is not a full OOP
> language."
>
>
> Thanks for any comment.
General comments about the page:
Section 2: Poor demonstration of 'global'. The declaration of 'a' as global
is unnecessary and misleading.
Section 4: "Maths: Requires import math"
The supplied examples won't work if you just "import math", they need a
"from math import ..." (either * or better an explicit list of functions).
Worse, the random number examples won't work whatever you import as they
include both 'random.seed()' which assumes 'random' is the module and 'x =
random()' which requires 'from random import random'.
Section 5: "Strings do not expand escape sequences unless it is defined as
a raw string by placing an r before the first quote" What is that supposed
to mean? Describing triple quoted strings as 'optional syntax' is a bit
weird too: the syntax is no more optional than any other form of string
literal, you can use it or not.
Another pointless example given under the heading 'String Operators':
Concatenation is done with the + operator.
Converting to numbers is done with the casting operations:
x = 1 + float(10.5)
"String functions" actually mostly describes string methods with "len"
hidden in the middle but only the example tells you that it is different
than the other examples.
Section 6 is all about numarray but bizarrely (for something purporting to
be an overview of Python) there is nothing at all about either list or dict
types.
Section 7 says "There is no switch or case statement so multiple elifs must
be used instead." omitting to mention other possibly more appropriate
options such as dicts or inheritance. This is a good indication that the
author doesn't know much about OOP.
Section 8 "for x in array: statements" shows that the author doesn't
understand things like iterators.
Section 10 has such interesting facts as "Only constant initializers for
class variables are allowed (n = 1)" or "Objects can be compared using the
== and != operators. Two objects are equal only if they are the same
instance of the same object." and an example with a completely spurious
class attributes, some pointless getter/setter methods, and contorted calls
to base class methods.
Section 11 demonstrates again that the author doesn't understand about
iterable objects.
I'd say the claim that Python isn't a full OOP language is not the most
important reason to ignore the page.
More information about the Python-list
mailing list