Download presentation
Presentation is loading. Please wait.
Published byHarvey Snow Modified over 9 years ago
1
Python Programming Language
2
Created in 1991 by Guido Van Rossum
3
Python Programming Language General Purpose Language Clean Syntax
4
Python Programming Language General Purpose Language Clean Syntax Easy to Learn
5
Python Programming Language General Purpose Language Clean Syntax Easy to Learn Easy to Debug
6
Python Programming Language General Purpose Language Clean Syntax Easy to Learn Easy to Debug “Natural Feeling”
7
Python Programming Language General Purpose Language Interpreted
8
Python Programming Language General Purpose Language Interpreted No Compilation Phase
9
Python Programming Language General Purpose Language Interpreted No Compilation Phase Multiplatform Integration
10
Python Programming Language General Purpose Language Interpreted No Compilation Phase Multiplatform Integration Native Debugger
11
Python Programming Language General Purpose Language Interpreted Duck Typing
12
Python Programming Language General Purpose Language Interpreted Duck Typing Override behaviours by creating methods
13
Python Programming Language General Purpose Language Interpreted Duck Typing Override behaviours by creating methods Implement operations by creating methodst
14
Python Programming Language General Purpose Language Interpreted Duck Typing Override behaviours by creating methods Implement operations by creating methods All data is an object
15
Python Programming Language Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. Every object has an identity, a type and a value.
16
Python Programming Language An object’s identity never changes once it has been created The ‘is‘ operator compares the identity of two objects The id() function returns an integer representing its identity
17
Python Programming Language An object’s identity never changes once it has been created The ‘is‘ operator compares the identity of two objects The id() function returns an integer representing its identity An object’s type is also unchangeable. The type() function returns an object’s type (which is an object itself).
18
Python Programming Language General Purpose Language Interpreted Duck Typing Strongly Typed
19
Python Programming Language A Python programmer can write in any style they like, using design patterns borrowed from: Imperative Declarative Object Oriented functional programming The author is free let the problem guide the development of the solution.
20
Python Programming Language print('hello world') class Hello(object): def __init__(self, my_string): self.my_string = my_string def __call__(self, render_func): out_str = 'Hello %s' % self.my_string render_func(out_str) def print_string(string_to_print): print(string_to_print) myHelloWorldClass = Hello('world') myHelloWorldClass(print_string)
21
Functional Example Python addn = lambda n: lambda x: x + n Or def addN(n): def add_n(x): return x + n return add_n Java: public class OuterClass { // Inner class class AddN { AddN(int n) { _n = n; } int add(int v) { return _n + v; } private int _n; } public AddN createAddN(int var) { return new AddN(var); } LISP (define (addn n) (lambda (k) (+ n k)))
22
Modular Design The standard Python interpreter (CPython) is written in C89 It is designed with two-way interfacing in mind: Embedding C programs in Python Embedding Python programs in C
23
Modular Design An Example C Module #include static PyObject * spam_system(PyObject *self, PyObject *args) { const char *command; int sts; if (!PyArg_ParseTuple(args, "s", &command)) return NULL; sts = system(command); return Py_BuildValue("i", sts); } /********************************************************* ** import spam ** ** spam.system( ** ** 'find. -name "*.py" ** ** -exec grep -Hn "Flying Circus" {} \;') ** *********************************************************/
24
Cross Platform Execution The CPython interpreter can be built on most platforms with a standard C library including glibc and uclibc.
25
Cross Platform Execution Interpreters such as Jython and IronPython can be used to run a python interpreter on any Java or.NET VM respectively.
26
Python Is Good For Protyping
27
Python Is Good For Protyping Web Applications/SAS
28
Python Is Good For Protyping Web Applications/SAS Integration
29
Python Is Good For Protyping Web Applications/SAS Integration Transport Limited Applications
30
Python Is Good For Protyping Web Applications/SAS Integration Transport Limited Applications Indeterminate Requirements
31
Python Is Good For Protyping Web Applications/SAS Integration Transport Limited Applications Indeterminate requirements Short Relevence Lifetime
32
Python Is Good For Protyping Web Applications/SAS Integration Transport Limited Applications Indeterminate requirements Short Relevence Lifetime Porting Legacy Applications
33
Python Is Good For Protyping Web Applications/SAS Integration Transport Limited Applications Indeterminate requirements Short Relevence Lifetime Porting Legacy Applications Glue
34
Python is Not Good For Native Cryptography
35
Python is Not Good For Native Cryptography MILOR
36
Python is Not Good For Native Cryptography MILOR Highly Parallel Design
37
__Types__ None
38
__Types__ None NotImplemented
39
__Types__ None NotImplemented Boolean
40
__Types__ None NotImplemented Boolean Int/LongInt
41
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double)
42
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ)
43
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences...
44
__Types__ Sequences string unicode bytes tuple list set frozenset
45
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences... Mapping Types (dict)
46
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences... Mapping Types (dict) Functions and Methods
47
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences... Mapping Types (dict) Functions and Methods Generators
48
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences... Mapping Types (dict) Functions and Methods Generators Modules
49
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences... Mapping Types (dict) Functions and Methods Generators Modules File/Buffer
50
__Types__ None NotImplemented Boolean Int/LongInt Float (which is really a double) Complex (double +doubleJ) Sequences... Mapping Types (dict) Functions and Methods Generators Modules File/Buffer Type (metaclasses)
51
Special Duck Methods __abs__ __add__ __and__ __iter__ __getitem__ __iter__ __del__ __cmp__! __hash__ __lt__ For Example
52
Example Code class Foo: baz = 'monkey' def bar(self): self.printFunc(self.text) foo = Foo() foo.text = 'Hello World' def print_console_factory( filter_func=lambda a: a ): def print_console(text): print(filter_func(text)) return print_console foo.printFunc = print_console_factory() print_hello_world = foo.bar print_hello_world() >>> Hello World vowels = [ 'a', 'e', 'i', 'o', 'u' ] filter_vowels = lambda a: ''.join([ let for let in a if not let.lower() in vowels ]) foo.printFunc = print_console_factory(filter_vowels) print_hello_world() >>>Hll Wrld
53
Python Resources Python.org Documentation http://www.python.org Python.org PEPs http://www.python.org/dev/peps/ Ye Olde Cheese Shoppe http://pypi.python.org/pypi
54
Alternate Implementation C API http://docs.python.org/extending Create C Modules Execute Python within a C application Interface via a C API
55
Alternate Implementation Jython http://www.jython.org/Project Native JVM Python interpreter Full support for standard library Other C Extensions may not be ported Python extensions may rely on C extensions
56
Alternate Implementation PyPy http://codespeak.net/pypy/dist/pypy/doc/ Python interpreter written in python Framework interprets multiple languages Highly extendable Slow
57
Alternate Implementation Psyco http://psyco.sourceforge.net Actually a C module Produces highly optimized C code from python bytecode Excellent performance characteristics Configurable
58
Alternate Implementation IronPython http://codesplex.com/Wiki/View.aspx?Proj ectName=IronPython Native python interpreter (C#) for.NET Full support for standard library Many external modules have been ported Porting modules is quite simple Can integrate with.NET languages
59
Alternate Implementation PyJamas http://code.google.com/p/pyjamas/ Python interpreter for JavaScript Cross browser fully supported As lightweight as you'd think JSON/JQuery may be a better option
60
Alternate Implementation ShedSkin http://code.google.com/p/shedskin/ Produces C++ code from Python code Excellent for prototyping Some language features not supported Implicit static typed code only
61
Alternate Implementation Cython http://www.cython.org Embed C code in a python application Excellent for use in profiling Compiled at first runtime Shared build env with python interpreter
62
Hosting Python mod_python By far most common hosting mechanism http://modpython.org Apache2 specific Interpreter embedded in webserver worker Memory intensive Fast
63
Hosting Python WSGI Up and coming – for a good reason http://code.google.com/p/modwsgi/ http://code.google.com/p/isapi-wsgi/ Can embedded interpreter Can run threaded standalong app server Very fast and inexpensive Sandboxing supported
64
Hosting Python FastCGI Mature and stable Requires no 3 rd party modules for most webservers Fast and inexpensive Sandboxing supported
65
Hosting Python CGI Mature and stable Supported on nearly all platforms Very flexible in terms of hosting requirements Slow
66
Web Frameworks Django http://www.djangoproject.com/ Active user community Well documented Currently under active development Extensive meta and mock classes Clean layer separation
67
Web Frameworks Django Data Layer Business Logic Control Layer Presentation Layer Not just for the web
68
Web Frameworks Turbogears – CherryPy http://www.turbogears.org Persistent app server Javascript integration via mochikit Flexible DB backend via SQLObject
69
Web Frameworks Pylons - Paste http://www.pylonshq.org/ Multiple DB Backends supported Multiple templating languages pluggable Multiple request dispatching HTTP oriented Forward compatible MVC Type layer separation
70
Web Frameworks Zope http://www.zope.org Web Application Framework Highly Web Oriented Not lightweight Highly Featureful ZDB Data store backend
71
Web Frameworks Zope http://www.zope.org Web Application Framework Highly Web Oriented Not lightweight Highly Featureful ZDB Data store backend
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.