"Szabolcs Nagy" <[EMAIL PROTECTED]> wrote: > iterpreter (very useful for learning)
In my mind, this is the coolest feature of all. Most of the time, I don't even bother looking stuff up in the docs; it's faster to just fire up an interpreter and try something. Functions like: > dir(obj) / vars(obj) (very useful for learning) really work well with this (I'm trying to figure out some way to work "synergize" into this without sounding like some corporate marketing wonk). > identation Feh. A red herring. At best, syntactic sugar. At worst, something for potential adopters to get hung up about. > dynamic typing Another absolute key feature, which can't be fully appreciated until you're staring at some 20-line long C++ template error message that you can't even begin to figure out. > lightweight oo (no public/protected/private) This one is debatable. This is value in private data (and methods). Fortunately, Python does let you make things private with the double-underscore syntax. > built-in types (list, dict, str have useful methods) Python does come with a good assortment of built-in types and containers, but most languages these days come with pretty much the same assortment. > iterator protocol More than the protocol is the syntax. Every iterator in Python looks and feels the same. No flipping through pages of documentation to figure out how this particular class's iterator works. > generators (yield syntax) > list comprehension / generator expression > keyword args > slicing > tuple assignment (unpacking tuple: a,b =1,2) > return with multiple values (tuple makes it easy) > widespread (it's easy to find a python module for any kind of task) > extendible with low-level languages (pyrex/swig/boostpython) > crossplatform > free > > nszabolcs -- http://mail.python.org/mailman/listinfo/python-list