A few questions

Christopher Arndt chris.arndt at web.de
Mon May 21 13:35:39 EDT 2007


I have a few quibles with your summary of Python's properties:

On 21 Mai, 08:16, John Nagle <n... at animats.com> wrote:
>      If you have a computer science background, here's all you need
> to know: Python is a byte-code interpreted untyped

Python is strongly but dynamically typed. The fact that you don't have
to declare which type a variable is, doesn't mean it's untyped.

> procedural

In Python you can programm in imperative/procedural, object-oriented
and functional style. It can thus be called a multi-paradigm language.
IMO it is best suited for the object-oriented paradigm.

> dynamic language with implicit declaration.  Syntax is vaguely C-like.

It shares many syntax rules with C (variable names, literals,
functions, ...) but it doesn't look at all like C (no braces,
semicolons, assignment expressions, pointers, ...).

>  Block structure is determined by indentation.  Objects use a class definition/
> explicit instantiation/multiple inheritance model.

Most important, classes are defined at run-time, not compile time,
which makes them highly dynamic.

Furthermore, classes, functions and methods are first-class data-
types, i.e you can pass them (or more correctly, references to them)
around as arguments or assign them to variables.

> Memory management
> is safe and managed by reference counts backed by a garbage collector.
> Weak references are supported.  Built in data types are numerics, ASCII
> and Unicode strings, dynamic arrays, fixed size tuples, and hashes.

Python lists are much more than arrays. More like a linked list.
You forgot sets. And functions, classes, methods, instances.... (see
above)

> Implementation speed is typically 2% of C.

Execution speed is approx. 2% - 150% of C :-)


Chris




More information about the Python-list mailing list