1、Python,Guido van Rossum director of PythonLabs at Zope Corporation mailto:guidopython.org http:/www.python.org,Whats in a name?,Snake logos and mascot notwithstanding, its named after Monty Pythons Flying Circus Humor-impaired can safely ignore the spam references :-) Nobody expects the Spanish inqu
2、isition,What is Python?,O-O rapid prototyping language Not just a scripting language Not just another Perl Easy to learn, read, use Extensible (add new modules) C/C+/Fortran/whatever Java (through Jython) Embeddable in applications,Touchy-feely properties,Open Source (OSI Certified) copyrighted but
3、use not restricted no “viral“ license owned by independent non-profit, PSF Mature (13 years old) Supportive user community plenty of good books, too Simple design, easy to learn reads like “pseudo-code” Suitable as first language Suitable as last language :-),High-level properties,Extremely portable
4、 Unix/Linux, Windows, Mac, PalmOS, WindowsCE, RiscOS, VxWorks, QNX, OS/2, OS/390, AS/400, PlayStation, Sharp Zaurus, BeOS, VMS Compiles to interpreted byte code compilation is implicit and automatic Memory management automatic reference counting for most situations GC added for cycle detection “Safe
5、”: no core dumps due to your bugs,What is it used for?,rapid prototyping web programming (client and server side) ad hoc programming (“scripting“) steering scientific applications extension language XML processing database applications GUI applications education,Who is using it?,Google (various proj
6、ects) NASA (several projects) NYSE (one of only three languages “on the floor“) Industrial Light & Magic (everything) Yahoo! (Yahoo mail & groups) RealNetworks (function and load testing) RedHat (Linux installation tools) LLNL, Fermilab (steering scientific applications) Zope Corporation (content ma
7、nagement) ObjectDomain (embedded Jython in UML tool) Alice project at CMU (accessible 3D graphics) More success stories at ,Language properties,Everything is an object Packages, modules, classes, functions Exception handling Dynamic typing, polymorphism Static scoping Operator overloading Indentatio
8、n for block structure Otherwise conventional syntax,High-level data types,Numbers: int, long, float, complex Strings, Unicode: immutable Lists and dictionaries: containers Other types for e.g. binary data, regular expressions, introspection Extension modules can define new “built-in” data types,Inte
9、rfaces to.,XML DOM, expat XMLRPC, SOAP, Web Services Relational databases MySQL, PostgreSQL, Oracle , ODBC, Sybase, Informix Java (via Jython) Objective C COM, DCOM (.NET too) Many GUI libraries cross-platform Tk, wxWindows, GTK, Qt platform-specific MFC, Mac (classic, Cocoa), X11,Compared to Perl,E
10、asier to learn very important for infrequent users More readable code More maintainable code Fewer “magical” side effects More “safety” guarantees Better Java integration,Compared to Java,Code up to 5 times shorter and more readable Dynamic typing Multiple inheritance, operator overloading Quicker d
11、evelopment no compilation phase less typing Yes, it may run a bit slower but development is much faster and Python uses less memory (studies show) Similar (but more so) for C/C+,Jython,Seamless integration with Java Separate implementation Implements the same language Different set of standard modul
12、es differences in “gray areas” e.g. some different introspection calls different command line options, etc.,Jythons Java integration,Interactive Compiles directly to Java bytecode Import Java classes directly Subclass Java classes pass instances back to Java Java beans integration Can compile into J
13、ava class files,Example function,def gcd(a, b):“greatest common divisor“while a != 0:a, b = b%a, a # parallel assignmentreturn b,Example class,class Stack:“A well-known data structure“ # doc stringdef _init_(self): # constructorself.items = def push(self, x):self.items.append(x) # the sky is the lim
14、itdef pop(self):x = self.items-1 # what happens if its empty?del self.items-1return xdef empty(self):return len(self.items) = 0,References and plugs,References: www.python.org - Python home site documentation, downloads, community, PSF www.pythonology.org - success stories - interview with GvR www.zope.org - Zope community site - Zope corporate site Python Conferences (see www.python.org): PyCon DC March 26-28 Washington, DC on-line registration ends today ($200) Python UK April 2-3 Oxford, England EuroPython June 25-27 Charleroi, Belgium Python11 at OSCON July 7-11 Portland, OR,