SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Types
              Python 2.4 Quick Reference Card                                                                                     Styles : keyword function/method type replaced_expression variable 
                                                                                                                                                                                                               basestring1 bool buffer complex dict exception file float 
                                                                                                                                   literal module module_filename language_syntax
         ©2005-2006 - Laurent Pointal <laurent.pointal@laposte.net>                                                                                                                                            frozenset global int list long object set slice str tuple 
                                                                                                                                  Notations :
                                                                                                                                                                                                               type unicode xrange
         V0.56 — 2006­5­31 — PQRC at http://laurent.pointal.org/python/pqrc                                                         f(…)→ return value             f(…)®return nothing (procedure)
                                                                                                                                                                                                               1
                                                                                                                                                                                                                 basestring is virtual superclass of str and unicode.
                                                                                                                                    [x] for a list of x data, (x) for a tuple of x data, may have x{n}→ n
               Long Python Quick Reference at http://rgruet.free.fr/
                                                                                                                                                                                                               This doc uses string when unicode and str can apply.
                                                                                                                                     times x data.
              Original Python reference at http://www.python.org/doc
                                                                                                                                                                                                                   Functions
                                                                                                                                  ENVIRONMENT VARIABLES
                    License : Creative Commons [by nc sa].
                                                                                                                                                                                                               Constructor functions of builtin types are directly accessible in builtins.
CARDS CONTENT                                                                                                                     PYTHONCASEOK              no case distinction in module→file mapping          __import__ abs apply1 callable chr classmethod cmp coerce 
                                                                                                                                                         1
                                                                                                                                                         1
                                                                                                                                  PYTHONDEBUG               = -d command-line option                            compile delattr dir divmod enumerate eval execfile filter 
Environment Variables............................1                  Copying Containers............................8
                                                                                                                                  PYTHONHOME              Modify standard Python libs prefix and exec prefix
Command-line Options............................1                   Overriding Containers Operations......8
                                                                                                                                                                                                                getattr globals hasattr hash  help hex id input intern2 
Files Extensions.......................................1        Sequences...............................................8                                  locations. Use <prefix>[:<execprefix>].              isinstance issubclass iter len locals map max min oct open 
Language Keywords................................1                  Lists & Tuples....................................      ..8                           1
                                                                                                                                  PYTHONINSPECT             = -i command-line option
                                                                                                                                                                                                                ord pow property range raw_input reduce reload repr 
Builtins....................................................1       Operations on Sequences...................8                                           1
                                                                                                                                  PYTHONOPTIMIZE            = -O command-line option
    Types...................................................1       Indexing......................................    ........8
                                                                                                                                                                                                                reversed round set setattr sorted staticmethod sum super 
                                                                                                                                  PYTHONPATH              Directories where Python search when importing
    Functions............................................1          Operations on mutable sequences.....8
                                                                                                                                                                                                                unichr vars zip
                                                                                                                                                           modules/packages. Separator : (posix) or ;
Statements..............................................1           Overriding Sequences Operations......8
                                                                                                                                                                                                                1
    Blocks.................................................1    Mappings (dictionaries)...........................8                                                                                               Use f(*args,**kargs) in place of apply(f,args,kargs).
                                                                                                                                                           (windows). Under windows use registry
    Assignment Shortcuts.........................1                  Operations on Mappings.....................8                                                                                                2
                                                                                                                                                                                                                  Don't use intern.
                                                                                                                                                           HKLMSofware….
Console & Interactive Input/Output.........2                        Overriding Mapping Operations..........8
                                                                                                                                  PYTHONSTARTUP           File to load at begining of interactive sessions.
                                                                                                                                                                                                               STATEMENTS
Objects, Names and Namespaces...........2                           Other Mappings..................................8                                     1
                                                                                                                                  PYTHONUNBUFFERED = -u command-line option
    Identifiers............................................2    Sets.........................................................9
                                                                                                                                                          1
                                                                                                                                                                                                               One statement per line1. Can continue on next line if an expression or a
                                                                                                                                  PYTHONVERBOSE             = -v command-line option
    Objects and Names, Reference                                    Operations on Sets.............................9
                                                                                                                                   1
                                                                                                                                     If set to non-empty value.                                                 string is not finished ( ( [ { quot;quot;quot; ''' not closed), or with a  at end of
    Counting.............................................2      Other Containers Structures, Algorithms 9
    Mutable/Immutable Objects...............2                       Array............................................. .....9
                                                                                                                        .
                                                                                                                                                                                                                line.
                                                                                                                                  COMMAND-LINE OPTIONS
    Namespaces.......................................2              Queue.................................................9
                                                                                                                                                                                                               Char # start comments up to end of line.
    Constants, Enumerations...................2                     Priority Queues...................................9
                                                                                                                                  python [-dEhiOQStuUvVWx] [-c cmd | -m mod | file | -] [args]
Flow Control............................................2           Sorted List...........................................9
                                                                                                                                                                                                               pass                                 Null statement.
                                                                                                                                  -d       Output debugging infos from parser.
    Condition............................................2          Iteration Tools.....................................9
                                                                                                                                                                                                                                                    Assertion check expression true.
                                                                                                                                                                                                               assert expr[,message]
                                                                                                                                  -E       Ignore environment variables.
    Loop....................................................2   Date & Time............................................9
                                                                                                                                                                                                               del name[,…]                         Remove name → object binding.
    Functions/methods exit......................2                   Module time........................................9          -h       Print help and exit.
    Exceptions..........................................2           Module datetime...............................10                                                                                                                                Write expr to sys.stdout2.
                                                                                                                                                                                                               print [>>obj,][expr[,…][,]
                                                                                                                                  -i       Force interactive mode with prompt (even after script
    Iterable Protocol.................................2             Module timeit....................................10
                                                                                                                                           execution).                                                         exec expr [in globals [, locals]]    Execute expr in namespaces.
Interpretation / Execution.......................2                  Other Modules..................................10
                                                                                                                                           Optimize generated bytecode, remove assert checks.
                                                                                                                                  -O                                                                           fct([expr[,…]],[name=expr[,…]]       Call any callable object fct with given
Functions Definitions & Usage.................2                 Files.......................................................10
                                                                                                                                  -OO      As -O and remove documentation strings.                                                                   arguments (see Functions Definitions &
    Parameters / Return value..................2                    File Objects.......................................10                                                                                       [,*args][,**kwargs])
    Lambda functions...............................2                Low-level Files...................................10          -Q arg   Division option, arg in [old(default),warn,warnall,new].                                                  Usage - p2).
    Callable Objects..................................2             Pipes.................................................10                                                                                                                        Assignment operator3.
                                                                                                                                                                                                               name[,…] = expr
                                                                                                                                  -S       Don't import site.py definitions module.
    Calling Functions.................................2             In-memory Files................................10
                                                                                                                                  -t       Warn inconsistent tab/space usage (-tt exit with error).
    Functions Control................................3              Files Informations..............................11                                                                                            Multiple statements on same line using ; separator - avoid if not
                                                                                                                                                                                                                1
                                                                                                                                  -u       Use unbuffered binary output for stdout and stderr.
    Decorators..........................................3           Terminal Operations..........................11
                                                                                                                                                                                                                necessary.
                                                                                                                                  -U       Force use of unicode literals for strings.
Types/Classes & Objects..........................3                  Temporary Files.................................11                                                                                          2
                                                                                                                                                                                                                  Write to any specified object following file interface (write method).
                                                                                                                                  -v       Trace imports.
    Class Definition...................................3            Path Manipulations...........................11
                                                                                                                                                                                                                Write space between expressions, line-return at end of line except with
    Object Creation...................................3             Directories........................................11         -V       Print version number and exit.
                                                                                                                                                                                                                a final ,.
    Classes & Objects Relations...............3                     Special Files......................................12         -W arg   Emit warning for arg quot;action:message:category:module:linenoquot;
    Attributes Manipulation......................3                  Copying, Moving, Removing.............12                                                                                                    3
                                                                                                                                                                                                                  Left part name can be container expression. If expr is a sequence of
                                                                                                                                  -x       Skip first line of source (fort non-Unix forms of #!cmd).
    Special Methods.................................3               Encoded Files....................................       12
                                                                                                                                                                                                                multiple values, can unpack into multiple names. Can have multiple
                                                                                                                                  -c cmd   Execute cmd.
    Descriptors protocol...........................3                Serialization......................................12
                                                                                                                                                                                                                assignments of same value on same line : a = b = c = expr.
                                                                                                                                  -m mod   Search module mod in sys.path and runs it as main script.
    Copying Objects..................................3              Persistence.......................................12
                                                                                                                                                                                                               Other statements (loops, conditions…) introduced in respective parts.
                                                                                                                                           Python script file to execute.
                                                                                                                                  file
    Introspection.......................................3           Configuration Files............................12
Modules and Packages............................3               Exceptions.............................................12                  Command-line arguments for cmd/file, available in
                                                                                                                                  args                                                                              Blocks
    Source encodings...............................3                Standard Exception Classes.............12
                                                                                                                                           sys.argv[1:].                                                       A : between statements defines dependant statements, written on same
    Special Attributes...............................3              Warnings...........................................13
Main Execution / Script Parameters........3                         Exceptions Processing......................13
                                                                                                                                  FILES EXTENSIONS                                                              line or written on following line(s) with deeper indentation.
Operators................................................4      Encoding - Decoding.............................13                                                                                             Blocks of statements are simply lines at same indentation level.
    Priority................................................4   Threads & Synchronization...................13                    .py=source, .pyc=bytecode, .pyo=bytecode optimized, .pyd=binary                  if x<=0 : return 1
    Arithmetic Operators..........................4                 Threading Functions.........................13                module, .dll/.so=dynamic library.                                                if asin(v)>pi/4 :
    Comparison Operators........................4                   Threads.............................................13
                                                                                                                                  .pyw=source associated to pythonw.exe on Windows platform, to run                    a = pi/2
    Operators as Functions.......................4                  Mutual Exclusion...............................13
                                                                                                                                  without opening a console.
Booleans..................................................4         Events...............................................13                                                                                            b = ­pi/2
Numbers..................................................4          Semaphores......................................13
                                                                                                                                  LANGUAGE KEYWORDS                                                                else :
    Operators............................................4          Condition Variables...........................13
                                                                                                                                                                                                                       a = asin(v)
    Functions............................................4          Synchronized Queues.......................13
                                                                                                                                  List of keywords in standard module keyword.                                         b = pi/2­a
Bit Level Operations................................5           Process..................................................13
                                                                                                                                  and as1 assert break class continue def del elif else 
    Operators............................................5          Current Process.................................13                                                                                          Statement continuation lines don't care indentation.
                                                                                                                                  except exec finally for from global if import in is lambda 
Strings....................................................5
                                                          .         Signal Handling.................................14                                                                                          To avoid problems, configure your editor to use 4 spaces in place of
    Escape sequences..............................5                 Simple External Process Control.......14                      not or pass print raise return try while yield                                tabs.
    Unicode strings...................................5             Advanced External Process Control. .15                        1
                                                                                                                                    not reserved, but avoid to redefine it.
                                                                                                                                                                                                                   Assignment Shortcuts
    Methods and Functions.......................5               XML Processing.....................................15
                                                                                                                                  Don't redefine these constants : None, True, False.
    Formating...........................................6           SAX - Event-driven............................15
                                                                                                                                                                                                               a += b      a ­= b              a *= b           a /= b
    Constants............................................6          DOM - In-memory Tree......................16
                                                                                                                                  BUILTINS                                                                     a //= b     a %= b              a **= b
    Regular Expressions...........................6             Databases.............................................17
    Localization.........................................7          Generic access to DBM-style DBs.....17                                                                                                     a &= b      a |= b              a ^= b           a >>= b       a <<= b
                                                                                                                                  Available directly everywhere with no specific import. Defined also in
    Multilingual Support............................7               Standard DB API for SQL databases .17
                                                                                                                                   module __builtins__.                                                        Evaluate a once, and assign to a the result of operator before = applied
Containers............................................. .8.     Tools......................................................18
    Operations on Containers...................8

                                                            1a                                                                                                        1b                                                                           1c
from enclosing definitions, then globals, then builtins.                       enumerate(iterable)→ iterator returning tuples (index,value) from iterable
to current a and b. Example : a%=b ≈ a=a%b
                                                                             Out-of-scope name → use the dotted attribute notation x.y (maybe                       Iterators Objects Interface
CONSOLE & INTERACTIVE INPUT/OUTPUT                                            x.y.z.t)… where x is a name visible within the current scope.
                                                                                                                                                             next(self)→ next item1
print expression[,…]                                                         Class namespace → names defined in a class (class members).
                                                                                                                                                             __iter__(self)→ iterator object itself
input([prompt]) → evaluation of user input (typed data)                      Object namespace → names usable with object.name notation (attributes,           1
                                                                                                                                                                When reach end of collection, raise StopIteration exception on
raw_input([prompt]) → str: user input as a raw string                         methods).                                                                       subsequent calls (ie. iterator usable only one time on a collection).
Direct manipulation (redefinition) of stdin/stdout/stderr via sys module :
                                                                             Namespaces can be nested, inner namespaces hidding identical names                     Generators
sys.stdin                sys.stdout          sys.stderr                       from outer namespaces.
sys.__stdin__            sys.__stdout__      sys.__stderr__                                                                                                  Functions retaining their state between two calls. Return values using
                                                                             dir([object]) → list: names defined in object namespace1
                                                                                                                                                              yield. Stop generation via simple return or via raise StopIteration.
 All are files or files-like objects. The __xxx__ forms keep access to       vars([object]) → dict2: identifier:value of object as a namespace1
                                                                                                                                                               1) build generator from function : gen=generatorfct(args)
 original standard IO streams.                                                  if object not specified use nearest namespace (locals).
                                                                              1

Ctrl-C raises KeyboardInterrupt exception.                                                                                                                     2) use gen.next() values until StopIteration is raised.
                                                                                must not be modified.
                                                                              2

_ → value of last expression evaluation
                                                                                                                                                             Generator iterable expressions with : (x for x in iterable where cond)
                                                                                  Constants, Enumerations
help([object]) ® print online documentation
                                                                             Use uppercase and _ for constants identifiers (good practice). May define              Operations with/on Iterable
sys.displayhook → (rw) fct(value) called to display value                     namespaces to group constants. Cannot avoid global/local name
sys.__displayhook__ → backup of original displayhook function                                                                                                See Operations on Containers (p8).
                                                                              redefinition (can eventually define namespaces as classes with
sys.ps1 → str: primary interpreter prompt                                     attributes access control - not in Python spirit, and execution cost).         See Iteration Tools (p9).
                                                                             See third party modules pyenum for strict enum-like namespace.
sys.ps2 → str: secondary (continuation) interpreter prompt
                                                                                                                                                             INTERPRETATION / EXECUTION
                                                                             FLOW CONTROL
See external package ipython for an enhanced interactive Python shell.
                                                                                                                                                             compile(string1,filename,kind2[,flags3[,dont_inherit3]]) → code object
OBJECTS, NAMES            NAMESPACES                                                                                                                         eval(expression[,globals[,locals]]) → value: evaluation4 of expression string
                    AND                                                      Condition                       Loop
                                                                                                                                                             eval(code_object[,globals[,locals]]) → value: evaluation4 of code object
                                                                               if cond : inst
    Identifiers                                                                                                for var[,…] in iterable : inst
                                                                                                                                                             exec5 statements [in globals[,locals]] ® statements string1 executed4
                                                                             [ elif cond : inst ]
Use : [a-zA-Z_][a-zA-Z0-9_]*                                                                                 [ else : inst ]
                                                                                                                                                             execfile(filename[,globals[,locals]])® file interpreted4
                                                                             [ else : inst ]
Special usage for underscore :
                                                                                                                while cond : inst
   _xxx         global not imported by import *                                                                                                               1
                                                                                                                                                                Multi-line statements in source code must use n as newline, and
                                                                              There is no 'switch' or 'case'.
                                                                                                              [ else : inst ]
   _xxx         implementation detail, for internal use (good practice)                                                                                       must be terminated by a newline.
                                                                              Can use if elif elif… else.
   __xxx        'private' class members, defined as _ClassName__xxx                                                                                           2
                                                                                                                                                                Kind relative to string content, 'exec' → sequence of statements,
                                                                                                              Exit loop with break.
                                                                              Can use a mapping with
   __xxx__ normally reserved by Python                                                                                                                        'eval' → single expression, 'single' → single interactive statement.
                                                                              functions bound to cases.       Go to next iteration with continue.
Case is significant : This_Name != THIS_NAME.                                                                                                                 3
                                                                                                                                                                Flags and dont_inherit are for future statements (see doc).
                                                                                                              Loops else blocs only executed when             4
                                                                                                                                                                In context of globals and locals namespaces.
    Objects and Names, Reference Counting                                                                     loop exit normally (without break).             5
                                                                                                                                                                Exec is a langage statement, others are builtin functions.
Data are typed objects (all data), names are dynamically bound to                 Functions/methods exit
                                                                                                                                                             FUNCTIONS DEFINITIONS & USAGE
 objects.
                                                                             Exit function/method with return [value]
= assignment statement bind result of right part evaluation into left part
                                                                             Exit from generator body with yield value                                       def fctname([paramname[=defaultvalue][,…]] [,*args][,**kwargs]) :
 name(s)/container(s). Examples :
                                                                              Multiple returned values using tuple data.                                          instructions
a = 3*c+5      a,b = (quot;Helloquot;,quot;Worldquot;)         x,y,tabz[i] = fct(i)
                                                                              Cannot yield within a try/finally block.
                                                                                                                                                                  Parameters / Return value
s = quot;Helloquot; pi,e = 3.14,2.71                   a,b = b,a
                                                                                  Exceptions                                                                 Parameters are passed by references to objects.
When an object is no longer referenced (by names or by containers), it is
                                                                              try : inst                                                                      You can modify values of mutable objects types.
destroyed (its __del__ method is then called).
                                                                                                                                                              You cannot modify values of immutable objects types - as if they were
                                                                                                    [,    ]] : inst
                                                                              except  except_class   value        
                                                                                       [  
                                                                                                       
                                                                                                              
sys.getrefcount(object)→ int: current reference counter of object                                                                                             passed by value.
                                                                              …
                                                                                                                                                             Notation *  → variable list of anonymous parameters in a tuple.
                                                                             [ else : inst ]
Standard module weakref define tools to allow objects to be garbage
                                                                                                                                                             Notation ** → variable list of named parameters in a dict.
                                                                               Can have a tuple of classes for except_class. Not specifying a class
collected when necessary and dynamically re-created on-demand.
                                                                                                                                                             Return value(s) with return [value[,…]]
                                                                               catch all exceptions.
    Mutable/Immutable Objects
                                                                               Block else executed when try block exit normally.                             For multiple values, return a tuple. If no return value specified or if end
Mutable objects can be modified in place. Immutable objects cannot be
                                                                                                                                                              of function definition reached, return None value.
                                                                             try : inst
 modified (must build a new object with new value).
                                                                                                                                                                 Lambda functions
Immutable : bool, int, long, float, complex, string, unicode,                finally : inst
 tuple, frozenset, buffer, slice.                                                                                                                            lambda param[,…] : expression
                                                                             Process finally block in all execution paths (normal or exception).
Mutable : list, set, dict and other high level class objects.                                                                                                Anonymous functions defined inline. Result of expression evaluation is
                                                                             raise exception_class[,value[,traceback]]
There is no constant definition. Just use uppercase names to identify                                                                                         returned (it must be an expression, no loop, no condition).
                                                                             raise exception_object
 symbols which must not be modified.                                                                                                                          Expression uses values known at definition time (except for params).
                                                                             raise
    Namespaces                                                                                                                                                   Callable Objects
                                                                             Last form re-raise the currently catched exception in an exception
Places where Python found names.                                                                                                                             Objects having a __call__ method can be used as functions.
                                                                             handler.
Builtins namespace → names from module __builtins__, already                                                                                                 Methods bound to objects can be used as functions : f = o.meth
                                                                                 Iterable Protocol
 available.                                                                                                                                                  callable(x) → bool: test x callable with x(…)
                                                                             Generic and simple protocol allowing to iterate on any collection of data.
Global namespace → names defined at module level (zero indentation).
                                                                             Objects of class defining __iter__ or __getitem__ are iterable (directly            Calling Functions
Local namespace → names defined in methods/functions.
                                                                              usable in for loops).                                                          [name=] fctname([expr[,…]][,name=expr[,…][,*args][,**args])
del name ® remove existing name from namespace (remove object binding)
                                                                             __iter__(self) → iterator on self                                               Anonymous parameters passed in parameters order declaration.
globals() → dict: identifier→value of global namespace
                                                                             iter(object) → iterator on iterable object                                      Params having default value can be omitted.
locals() → dict: identifier→value of local namespace
                                                                             iter(callable,sentinel) → iterator returning callable() values up to sentinel   Notation *  → pass variable list of anonymous parameters in a tuple.
Current scope → names directly usable. Searched in locals, then locals

                                    2a                                                                              2b                                                                       2c
Notation ** → pass variable list of named parameters in a dict.                       Object Life                                                            For copying, objects can define pickling protocol too (see Files -
                                                                                                                                                             Serialization - p12), in place of __copy__ and __deepcopy__.
                                                                               __new__(classref,initargs…)→ object of classref type, already initialized1
   Functions Control
                                                                                                                                                                Introspection
                                                                               __init__ (self,initargs…)® called to initialize object with initargs
sys.getrecursionlimit()→ int: current recursion limit for functions
                                                                                                                                                            Beyond this documentation. Many __xxx___ attributes are defined,
                                                                               __del__ (self)® called when object will be destroyed
sys.setrecursionlimit(limit) ® set recursion limit for functions
                                                                                1
                                                                                                                                                             some are writable (see other docs).
                                                                                  If don't return a classref object, then object.__init__ is called with
     Decorators
                                                                                initargs.                                                                   See standard module inspect to manipulate these data.
Glue code (functions) called at functions and methods definitions time,
                                                                                      Object Cast                                                                  Example of Introspection Attributes
 return the final function/method (generally with wrapping code).
@                 (                                                            __repr__(self)→ str: called for repr(self) and `self`
                 [                   )]
  decoratorname   decorator_arguments   […]                                                                                                                  Note: classes are objects too!
                                        
                                                                               __str__(self) → str: called for str(self) and print self                     __base__ → list: parent classes of a class
def fct(fct_rguments):…
                                                                               __coerce__(self,other) → value, called for coerce(self,other)                __slots__ → tuple: allowed objects attributes names1 of a class
@dec1 @dec2(args) @dec3            def fct(…):…
                               like                                                                                                                         __class__ → class/type: object's class
                                   fct = dec1(dec2(args)(dec3(fct))))                 Object Hash Key
def fct(…):…                 ®
                                                                                                                                                            __dict__ → dict: defined attributes (object namespace) of an instance
See page PythonDecoratorLibrary in python.org Wiki for some decorators         __hash__(self)→ int: hash code for object, used for hash(obj)and quick
                                                                                                                                                            __doc__ → string: documentation string of a package, module, class, function
                                                                                mapping keys comparison - default implementation use hash(id(self))
definitions.
                                                                                                                                                            __name__ → str: object definition name of a function
TYPES/CLASSES & OBJECTS                                                               Attributes access
                                                                                                                                                            __file__ → string: pathname of loaded module .pyc, .pyo or .pyd
                                                                                See also quot;Descriptors protocolquot; infra.                                       1
                                                                                                                                                               List of allowed attributes names. Usage discouraged.
All data are typed objects relying to classes.
                                                                               __getattr__(self,name)→ value, called for undefined attributes
type(o) → type: type object of o
                                                                               __getattribute__(self, name)→ value, always called
                                                                                                                                                            MODULES            PACKAGES
Standard module types define type objects for builtins types.                                                                                                            AND
                                                                               __setattr__(self, name, value)® called for obj.name=value
     Class Definition                                                                                                                                       File gabuzo.py ® module gabuzo.
                                                                               __delattr__(self, name)® called for del obj.name
class classname [(parentclass[,…])] :                                                                                                                       Directory kramed/ with a file __init__.py ® package kramed.
                                                                               __hash__(self)→ int: 32 bits hash code, called for hash(obj) and dict 
      varname = expr ® varname defined in classname namespace                                                                                               Can have sub-packages (subdirectories having __init__.py file).
                                                                               operations
      def metname(self[,…]): ® define methods like functions                                                                                                Searched in the Python PATH.
                                                                               __call__(self, *args, **kwargs)→ value, called for obj(…)
Support multiple inheritance. Can inherit from builtin class.                                                                                               Current Python PATH stored in sys.path list. Contains directories and
                                                                                      Static method / Class method
Inherit at least from object base class => Python 'new style class'.                                                                                        .zip files paths. Built from location of standard Python modules,
                                                                               Use standard decorators (see Decorators p3).
First parameter of methods is target object, standard use self name.                                                                                        PYTHONPATH environment variable, directory of main module given on
                                                                               class ClassName :
Access class members via class name, object members via self.                                                                                               command line, data specified in lines of .pth files found in Python home
                                                                                   @staticmethod                                                            directory, and data specified in registry under Windows.
 This doc consider you use new style class (inheriting from object).
                                                                                                                                                            Current list of loaded modules stored in sys.modules map (main module
                                                                                   def methodname(…): …
       Metaclass
                                                                                                                                                             is under key __main__).
                                                                                   @classmethod
Class definition create a new type. It can be done 'by hand' with :
                                                                                   def methodname(classref,…): …                                            import module [as alias] [,…]
 x = type('classname',(parentclass,[…]),{varname:expr[,…]}
                                                                                                                                                            from module import name [as alias] [,…]
                                                                                    Descriptors protocol
 def metname(self[,…]):
                                                                                                                                                            from module import *
                                                                               Descriptors are attribute objects controling access to attributes values.
 x.metname = metname
                                                                                                                                                            reload(module) ® module is reloaded (but old references still on old module
                                                                                They must define some of following methods :
This allow creation of metaclass classes (class building other class).
                                                                               __get__(self,obj,ownerclass)→ attribute value for obj                        content)
     Object Creation                                                                                                                                         Import can use package path (ex:from encoding.aliases import…).
                                                                               __set__(self,obj,value)® modify attribute in obj, set to value
obj = ClassName(initargs…)                                                                                                                                   Direct import from a package use definitions from __init__.py file.
                                                                               __delete__(self,obj)® remove attribute from obj
 In cas of exception during initialization, object is destroyed when exiting                                                                                 Very careful with import * as imported names override names already
                                                                               In these methods self is the descriptor object, and obj is the target
 init code (reference counter reach zero).                                                                                                                   defined.
                                                                                object which attribute is manipulated.
                                                                                                                                                             To limit your modules names exported and visible by import *, define
    Classes & Objects Relations
                                                                                      Properties
                                                                                                                                                             module global __all__ with list of exported names (or use global
isinstance(obj,classinfo) → bool: test object of type/class classinfo
                                                                               A descriptor to directly bind methods/functions to control attribute          names _xxx).
issubclass(aclass, aparent) → bool: test same class or parent relationship
                                                                                access. Use builtin type property with init args.                           See __import__ builtin function, imp builtin module and ihooks module.
 Prefer isinstance() to type() for type checking.
                                                                               class MyClass :                                                              __import__(modulename[, globals[,locals[,lnameslist]]])
Parent class methods are not automatically called if overriden in
                                                                                  attributename = property(getter,setter,deleter,description)
 subclass - they must be explicitly called if necessary.                                                                                                          Source encodings
                                                                                Each init arg default to None (ie. undefined).
Call parent methods via super function :                                                                                                                    See PEP 263. Declare source files encoding in first or second line in a
                                                                                    Copying Objects
   super(ThisClass,self).methodname(self,args…)                                                                                                              special comment.
                                                                               Assignment only duplicate references. To shallow copy an object (build a     # ­*­ coding: encoding_name ­*­
Or the old way, via parent class namespace :
                                                                                new one with same values - referencing same content), or to deep copy       If this is not specified, Python use sys.getdefaultencoding() value
  ParentClass.methodname(self,args…)
                                                                                an object (deep-copying referenced content), see object copy methods,        (see modules sitecustomize.py and user.py).
    Attributes Manipulation                                                     and functions in standard module copy.                                       It is important to specify encoding of your modules as uquot;…quot; strings use
object.name = value                                                            copy.copy(object)→ value: shallow copy of object                              it to correctly build unicode literals.
setattr(object,name,value) ® object attribute set to value                     copy.deepcopy(object[[,memo],_nil])→ value: deep copy of object1                Special Attributes
                                                                                  Params memo and nil are used in recursive deepcopy, their default
object.name → value of object attribute                                         1
                                                                                                                                                            __name__ → str: module name, '__main__' for command-line called script
getattr(object,name[,default])→ value of object attribute                       values are None and empty list.
                                                                                                                                                            __file__ → string: pathname of compiled module loaded
del object.name                                                                       Copy Protocol
                                                                                                                                                            MAIN EXECUTION / SCRIPT PARAMETERS
delattr(object,name) ® object attribute removed
                                                                               __copy__(self)→  value: shallow copy of self, called by copy.copy(…)
   Special Methods                                                                                                                                          The 'main' module is the module called via command-line (or executed
                                                                               __deepcopy__(self,memo)→  value: deep copy of self, called by
                                                                                                                                                             by shell with first script line #! /bin/env python).
Other special overridable __xxx___ methods are listed in respective
                                                                                copy.deepcopy(…)                                                            Command-line parameters are available in sys.argv (a python list).
sections.

                                      3a                                                                            3b                                                                      3c
BOOLEANS
At end of module, we may have :                                                   Comparison Overriding
if __name__=='__main__' :
                                                                           __lt__(self,   other)→ bool1 : called for self < other                 False : None, zero numbers, empty containers. False → 0.
    # main code
                                                                           __le__(self,   other)→ bool1 : called for self <= other                True : if not false. True → 1.
    # generally call a 'main' function:
                                                                           __gt__(self,   other)→ bool1 : called for self > other                 bool(expr) → True | False
    mainfunction(sys.argv[1:])
                                                                           __ge__(self,   other)→ bool1 : called for self >= other                Logical not : not expr
    # or in lib modules, execute test/demo code...
                                                                           __eq__(self,   other)→ bool1 : called for self == other                Logical and : expr1 and expr2
Execution exit after last main module instruction (in multithread, wait
                                                                                                                                                  Logical or : expr1 or expr2
                                                                           __ne__(self,   other)→ bool1 : called for self != other
 also for end of non-daemon threads), unless interactive mode is forced.
                                                                                                                                                   Logical and and or use short path evaluation.
                                                                                                              and for self <> other
Can force exit with calling sys.exit(code), which raise a SystemExit 
                                                                           __cmp__(self,other)→ int : called for self compared to other,                 Bool Cast Overriding
 exception - see Current Process - Exiting (p13).
                                                                            self<other→value<0, self==other→value=0, self>other→value>0           __nonzero__(self) → bool : test object itself1
OPERATORS                                                                     Any value usable as boolean value, or a NotImplemented value if
                                                                            1                                                                      1
                                                                                                                                                     If __nonzero__ undefined, look at __len__, else object is true.
Deal with arithmetic, boolean logic, bit level, indexing and slicing.       cannot compare with such other type.
                                                                                                                                                  NUMBERS
    Priority                                                                  Operators as Functions
                                                                                                                                                  Builtin integer types : int (like C long), long (unlimited integer)
 1 (a,…) [a,…         6 x+y      11 x<y x<=y x>y x>=y x==y x!=y            Operators are also defined as functions in standard operator module.
                ]
                                                                                                                                                  int(expr[,base=10]) → int: cast of expr
   {a:b,…  `…           x­y          x<>y x is y x is not y x in s
                `
            }                                                                     Comparison
                                                                                                                                                  long(expr[,base=10]) → long: cast of expr
                                     x not in s
                                                                           lt(a,b) = __lt__(a,b)                ne(a,b) = __ne__(a,b)             Builtin floating point types : float (like C double), complex (real and
 2 s[i] s[i:j]        7 x<<y     12 not  
                                        x 
                                         
                                                                           le(a,b) = __le__(a,b)                ge(a,b) = __ge__(a,b)              imaginary parts are float).
                        x>>y
   s.attr f(…)                                                                                                                                    float(expr) → float: representation of expr
                                                                           eq(a,b) = __eq__(a,b)                gt(a,b) = __gt__(a,b)
                                 13 x and y
 3 +x  ­x  ~x         8 x&y
                                                                                                                                                  complex(x[,y]) → complex: number: x+yj
                                                                                  Logical / Boolean
                                                                                                                                                  [x+]yj → complex: number, ex: 3+4j -8.2j
 4 x**y               9 x^y      14 x or y
                                                                           not_(o) = __not__(o)                 and_(a,b) = __and__(a,b)
                                                                                                                                                  c.real → float: real part of complex number
 5 x*y x/y x%y       10 x|y      15 lambda    :expr                        truth(o)                             or_(a,b) = __or__(a,b)
                                           args     
                                            
                                                                                                                                                  c.img → float: imaginary part of complex number
                                                                           is_(a,b)                             xor(a,b) = __xor__(a,b)
   Arithmetic Operators                                                                                                                           c.conjugate() → complex: conjugate of complex number (real,-img)
                                                                           is_not(a,b)
Can be defined for any data type.                                                                                                                  Maximum int integer in sys.maxint.
                                                                                  Arithmetic                                                       Automatic conversions between numeric types.
       Arithmetic Overriding
                                                                                                                                                   Automatic conversions from int to long when result overflow max int.
                                                                           abs(o) = __abs__(o)             truediv(a,b) = __truediv__(a,b)
__add__(self,other) →  value: called for self + other                                                                                              Direct conversions from/to strings from/to int, long… via types
                                                                           add(a,b) = __add__(a,b)         floordiv(a,b) = __floordiv__(a,b)
__sub__(self,other) →  value: called for self ­ other                                                                                              constructors.
                                                                           sub(a,b) = __sub__(a,b)         neg(o) = __neg__(o)                    Type Decimal defined in standard module decimal.
__mul__(self,other) →  value: called for self * other
                                                                           mul(a,b) = __mul__(a,b)         pos(o) = __pos__(o)                    Base fixed type compact storage arrays in standard module array.
__div__(self,other) →  value: called1 for self / other
                                                                           div(a,b) = __div__(a,b)         pow(a,b) = __pow__(a,b)
__truediv__(self,other) → value: called2 for self / other                                                                                              Operators
                                                                           mod(a,b) = __mod__(a,b)
__floordiv__(self,other) →  value: called for self // other                                                                                       ­x +x x+y x­y x*y x/y 1 x//y 1 x%y 2 x**y 2
                                                                                  Bit Level
                                                                                                                                                    With from __future__ import division, / is true division (1/2→0.5),
__mod__(self,other) →  value: called for self % other
                                                                                                                                                  1

                                                                           lshift(a,b) = __lshift__(a,b)                                           and // is floor division (1//2→0). Else for integers / is still floor division.
__divmod__(self,other) →  value: called for divmod(self,other)
                                                                           rshift(a,b) = __rshift__(a,b)                                            % is remainder operator, ** is power elevation operator (same as pow).
                                                                                                                                                  2
__pow__(self,other) →  value: called for self ** other
                                                                           inv(o) = invert(o) = __inv__(o) = __invert__(o)
__nonzero__(self)→  value: called for nonzero(self)                                                                                                  Functions
                                                                                  Sequences                                                       Some functions in builtins.
__neg__(self) →  value: called for ­self
                                                                                                                                                  abs(x) → absolute value of x
                                                                           concat(a,b) = __concat__(a,b)
__pos__(self) →  value: called for +self
                                                                                                                                                  divmod(x,y) → (x/y,x%y)
                                                                           contains(a,b) = __contains__(a,b)
__abs__(self) →  value: called for abs(self)
                                                                                                                                                  oct(integer) → str: octal representation of integer number
                                                                           countOf(a,b)
__iadd__(self,other) ® called for self += other
                                                                                                                                                  hex(integer) → str: hexadecimal representation of integer number
                                                                           indexOf(a,b)
__isub__(self,other) ® called for self ­= other
                                                                           repeat(a,b) = __repeat__(a,b)                                                 Math Functions
__imul__(self,other) ® called for self *= other
                                                                           setitem(a,b,c) = __setitem__(a,b,c)                                    Standard floating point functions/data in standard math module.
__idiv__(self,other) ® called1 for self /= other
                                                                           getitem(a,b) = __getitem__(a,b)                                        acos(x) → float: radians angle for x cosinus value : [-1…1] →[0…π]
__itruediv__(self,other) ® called2 for self /= other
                                                                           delitem(a,b) = __delitem__(a,b)                                        asin(x) → float: radians angle for x sinus value : [-1…1] →[-π/2…+π/2]
__ifloordiv__(self, other) ® called for self //= other
                                                                           setslice(a,b,c,v) = __setslice__(a,b,c,v)                              atan(x) → float: radians angle for x tangent value : [-∞…∞] →]-π/2…+π/2[
__imod__(self,other) ® called for self %= other
                                                                           getslice(a,b,c) = __getslice__(a,b,c)                                  atan2(x,y) → float: randians angle for x/y tangent value
__ipow__(self,other) ® called for self **= other
                                                                           delslice(a,b,c) = __delslice__(a,b,c)
 1
   without / 2 with from __futur__ import division                                                                                                ceil(x) → float: smallest integral value >= x
 Binary operators __xxx__ have also __rxxx__ forms, called when                   Type Testing                                                    cos(x) → float: cosinus value for radians angle x
 target object is on right side.
                                                                                                                                                  cosh(x) → float: hyperbolic cosinus value for radians angle x
                                                                            These functions must be considered as not reliable.
    Comparison Operators                                                   isMappingType(o)                                                       exp(x) → float: exponential of x = ex
Operators can compare any data types.                                      isNumberType(o)                                                        fabs(x) → float: absolute value of x
Compare values with < <= > >= == != <>.                                    isSequenceType(o)                                                      floor(x) → float: largest integral value <= x
Test objects identity with is and is not (compare on id(obj)).                                                                                    fmod(x,y) → float: modulo = remainder of x/y
                                                                                  Attribute and Item Lookup
Direct composition of comparators is allowed in expressions : x<y<=z>t.                                                                           frexp(x) → (float,int): (m,y) m mantissa of x,y exponent of x — where
                                                                           attrgetter(attr) → fct: where fct(x)→x.attr
Builtin function cmp(o1,o2) → ­1 (o1 < o2), 0 (o1 == o2), 1 (o1 > o2)                                                                             x=m*2y
                                                                           itemgetter(item) → fct: where fct(x)→x[item]                           ldepx(x,i) → x * (2**i)

                                     4a                                                                        4b                                                                 4c
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python

Weitere ähnliche Inhalte

Was ist angesagt?

What's New In Python 2.5
What's New In Python 2.5What's New In Python 2.5
What's New In Python 2.5Richard Jones
 
Writing Usable APIs in Practice by Giovanni Asproni
Writing Usable APIs in Practice by Giovanni AsproniWriting Usable APIs in Practice by Giovanni Asproni
Writing Usable APIs in Practice by Giovanni AsproniSyncConf
 
What's New In Python 2.4
What's New In Python 2.4What's New In Python 2.4
What's New In Python 2.4Richard Jones
 
Supercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO AmsterdamSupercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO AmsterdamAcunu
 
Oop05 6
Oop05 6Oop05 6
Oop05 6schwaa
 
What is new and cool j2se & java
What is new and cool j2se & javaWhat is new and cool j2se & java
What is new and cool j2se & javaEugene Bogaart
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchShinpei Hayashi
 
[A3]deview 2012 network binder
[A3]deview 2012 network binder[A3]deview 2012 network binder
[A3]deview 2012 network binderNAVER D2
 
Ios interior routing_protocols
Ios interior routing_protocolsIos interior routing_protocols
Ios interior routing_protocolsMohamed Gamel
 
OOP Chapter 7 : More on Classes
OOP Chapter 7 : More on ClassesOOP Chapter 7 : More on Classes
OOP Chapter 7 : More on ClassesAtit Patumvan
 
Sfmodelsecondpartrefcard
SfmodelsecondpartrefcardSfmodelsecondpartrefcard
SfmodelsecondpartrefcardMaksim Kotlyar
 
Introduction to UBI
Introduction to UBIIntroduction to UBI
Introduction to UBIRoy Lee
 
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...Shinpei Hayashi
 

Was ist angesagt? (16)

Perl intro
Perl introPerl intro
Perl intro
 
What's New In Python 2.5
What's New In Python 2.5What's New In Python 2.5
What's New In Python 2.5
 
Writing Usable APIs in Practice by Giovanni Asproni
Writing Usable APIs in Practice by Giovanni AsproniWriting Usable APIs in Practice by Giovanni Asproni
Writing Usable APIs in Practice by Giovanni Asproni
 
What's New In Python 2.4
What's New In Python 2.4What's New In Python 2.4
What's New In Python 2.4
 
Supercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO AmsterdamSupercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO Amsterdam
 
Oop05 6
Oop05 6Oop05 6
Oop05 6
 
Tut4 dc
Tut4 dcTut4 dc
Tut4 dc
 
What is new and cool j2se & java
What is new and cool j2se & javaWhat is new and cool j2se & java
What is new and cool j2se & java
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic Search
 
GQSAR presentation
GQSAR presentationGQSAR presentation
GQSAR presentation
 
[A3]deview 2012 network binder
[A3]deview 2012 network binder[A3]deview 2012 network binder
[A3]deview 2012 network binder
 
Ios interior routing_protocols
Ios interior routing_protocolsIos interior routing_protocols
Ios interior routing_protocols
 
OOP Chapter 7 : More on Classes
OOP Chapter 7 : More on ClassesOOP Chapter 7 : More on Classes
OOP Chapter 7 : More on Classes
 
Sfmodelsecondpartrefcard
SfmodelsecondpartrefcardSfmodelsecondpartrefcard
Sfmodelsecondpartrefcard
 
Introduction to UBI
Introduction to UBIIntroduction to UBI
Introduction to UBI
 
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
 

Andere mochten auch

Python3 cheatsheet
Python3 cheatsheetPython3 cheatsheet
Python3 cheatsheetGil Cohen
 
Python Cheat Sheet
Python Cheat SheetPython Cheat Sheet
Python Cheat SheetGlowTouch
 
Cheat sheets for data scientists
Cheat sheets for data scientistsCheat sheets for data scientists
Cheat sheets for data scientistsAjay Ohri
 
R Reference Card for Data Mining
R Reference Card for Data MiningR Reference Card for Data Mining
R Reference Card for Data MiningYanchang Zhao
 
Regression and Classification with R
Regression and Classification with RRegression and Classification with R
Regression and Classification with RYanchang Zhao
 
Statistics for data scientists
Statistics for  data scientistsStatistics for  data scientists
Statistics for data scientistsAjay Ohri
 
OWL 2 Quick Reference Card Letter Size
OWL 2 Quick Reference Card Letter SizeOWL 2 Quick Reference Card Letter Size
OWL 2 Quick Reference Card Letter SizeJie Bao
 
Python at yhat (august 2013)
Python at yhat (august 2013)Python at yhat (august 2013)
Python at yhat (august 2013)Austin Ogilvie
 
Analyzing mlb data with ggplot
Analyzing mlb data with ggplotAnalyzing mlb data with ggplot
Analyzing mlb data with ggplotAustin Ogilvie
 
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)Austin Ogilvie
 
Table of Useful R commands.
Table of Useful R commands.Table of Useful R commands.
Table of Useful R commands.Dr. Volkan OBAN
 
Hadley verse
Hadley verseHadley verse
Hadley verseAjay Ohri
 
Ggplot in python
Ggplot in pythonGgplot in python
Ggplot in pythonAjay Ohri
 
Analyze this
Analyze thisAnalyze this
Analyze thisAjay Ohri
 
Using R for Social Media and Sports Analytics
Using R for Social Media and Sports AnalyticsUsing R for Social Media and Sports Analytics
Using R for Social Media and Sports AnalyticsAjay Ohri
 
What is r in spanish.
What is r in spanish.What is r in spanish.
What is r in spanish.Ajay Ohri
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanishAjay Ohri
 
Kush stats alpha
Kush stats alpha Kush stats alpha
Kush stats alpha Ajay Ohri
 

Andere mochten auch (20)

Python3 cheatsheet
Python3 cheatsheetPython3 cheatsheet
Python3 cheatsheet
 
Python Cheat Sheet
Python Cheat SheetPython Cheat Sheet
Python Cheat Sheet
 
Cheat sheets for data scientists
Cheat sheets for data scientistsCheat sheets for data scientists
Cheat sheets for data scientists
 
Advanced R cheat sheet
Advanced R cheat sheetAdvanced R cheat sheet
Advanced R cheat sheet
 
R Reference Card for Data Mining
R Reference Card for Data MiningR Reference Card for Data Mining
R Reference Card for Data Mining
 
Regression and Classification with R
Regression and Classification with RRegression and Classification with R
Regression and Classification with R
 
Statistics for data scientists
Statistics for  data scientistsStatistics for  data scientists
Statistics for data scientists
 
OWL 2 Quick Reference Card Letter Size
OWL 2 Quick Reference Card Letter SizeOWL 2 Quick Reference Card Letter Size
OWL 2 Quick Reference Card Letter Size
 
Python at yhat (august 2013)
Python at yhat (august 2013)Python at yhat (august 2013)
Python at yhat (august 2013)
 
Analyzing mlb data with ggplot
Analyzing mlb data with ggplotAnalyzing mlb data with ggplot
Analyzing mlb data with ggplot
 
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
 
Table of Useful R commands.
Table of Useful R commands.Table of Useful R commands.
Table of Useful R commands.
 
Hadley verse
Hadley verseHadley verse
Hadley verse
 
Ggplot in python
Ggplot in pythonGgplot in python
Ggplot in python
 
Analyze this
Analyze thisAnalyze this
Analyze this
 
Using R for Social Media and Sports Analytics
Using R for Social Media and Sports AnalyticsUsing R for Social Media and Sports Analytics
Using R for Social Media and Sports Analytics
 
What is r in spanish.
What is r in spanish.What is r in spanish.
What is r in spanish.
 
Rcpp
RcppRcpp
Rcpp
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanish
 
Kush stats alpha
Kush stats alpha Kush stats alpha
Kush stats alpha
 

Ähnlich wie Python

Oracle plsql and d2 k interview questions
Oracle plsql and d2 k interview questionsOracle plsql and d2 k interview questions
Oracle plsql and d2 k interview questionsArunkumar Gurav
 
Python coroutine
Python coroutinePython coroutine
Python coroutine경섭 심
 
Note for Java Programming////////////////
Note for Java Programming////////////////Note for Java Programming////////////////
Note for Java Programming////////////////MeghaKulkarni27
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksEueung Mulyana
 
OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Foundation
 
Sparkly Notebook: Interactive Analysis and Visualization with Spark
Sparkly Notebook: Interactive Analysis and Visualization with SparkSparkly Notebook: Interactive Analysis and Visualization with Spark
Sparkly Notebook: Interactive Analysis and Visualization with Sparkfelixcss
 
PHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success StoryPHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success StoryMichael Spector
 
software defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllerssoftware defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllersIsaku Yamahata
 
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerPragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerMarina Kolpakova
 
Python Interview Questions For Experienced
Python Interview Questions For ExperiencedPython Interview Questions For Experienced
Python Interview Questions For Experiencedzynofustechnology
 
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]Christopher Chedeau
 
Using SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with PythonUsing SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with PythonDavid Beazley (Dabeaz LLC)
 
Static and Dynamic Analysis at Ning
Static and Dynamic Analysis at NingStatic and Dynamic Analysis at Ning
Static and Dynamic Analysis at NingZendCon
 
python presentation
python presentationpython presentation
python presentationVaibhavMawal
 
Python indroduction
Python indroductionPython indroduction
Python indroductionFEG
 

Ähnlich wie Python (20)

Oracle plsql and d2 k interview questions
Oracle plsql and d2 k interview questionsOracle plsql and d2 k interview questions
Oracle plsql and d2 k interview questions
 
Python coroutine
Python coroutinePython coroutine
Python coroutine
 
Note for Java Programming////////////////
Note for Java Programming////////////////Note for Java Programming////////////////
Note for Java Programming////////////////
 
Scilab vs matlab
Scilab vs matlabScilab vs matlab
Scilab vs matlab
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter Notebooks
 
OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11
 
Sparkly Notebook: Interactive Analysis and Visualization with Spark
Sparkly Notebook: Interactive Analysis and Visualization with SparkSparkly Notebook: Interactive Analysis and Visualization with Spark
Sparkly Notebook: Interactive Analysis and Visualization with Spark
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
2 P Seminar
2 P Seminar2 P Seminar
2 P Seminar
 
PHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success StoryPHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success Story
 
software defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllerssoftware defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllers
 
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerPragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
 
Python Interview Questions For Experienced
Python Interview Questions For ExperiencedPython Interview Questions For Experienced
Python Interview Questions For Experienced
 
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]
 
Using SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with PythonUsing SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with Python
 
Static and Dynamic Analysis at Ning
Static and Dynamic Analysis at NingStatic and Dynamic Analysis at Ning
Static and Dynamic Analysis at Ning
 
python presentation
python presentationpython presentation
python presentation
 
Advance python
Advance pythonAdvance python
Advance python
 
Parallel Programming
Parallel ProgrammingParallel Programming
Parallel Programming
 
Python indroduction
Python indroductionPython indroduction
Python indroduction
 

Mehr von Vinayak Hegde

Microsoft (Virtualization 2008)
Microsoft (Virtualization 2008)Microsoft (Virtualization 2008)
Microsoft (Virtualization 2008)Vinayak Hegde
 
Microsoft (Silverlight)
Microsoft (Silverlight)Microsoft (Silverlight)
Microsoft (Silverlight)Vinayak Hegde
 
Microsoft (Intro To Office)
Microsoft (Intro To Office)Microsoft (Intro To Office)
Microsoft (Intro To Office)Vinayak Hegde
 
Microsoft (Strength And Weakness)
Microsoft (Strength And Weakness)Microsoft (Strength And Weakness)
Microsoft (Strength And Weakness)Vinayak Hegde
 
Microsoft (SQL Server)
Microsoft (SQL Server)Microsoft (SQL Server)
Microsoft (SQL Server)Vinayak Hegde
 
Microsoft (Projects)
Microsoft (Projects)Microsoft (Projects)
Microsoft (Projects)Vinayak Hegde
 
Microsoft (Office 2007)
Microsoft (Office 2007)Microsoft (Office 2007)
Microsoft (Office 2007)Vinayak Hegde
 
Microsoft (Office 2007 And Math Edit)
Microsoft (Office 2007 And Math Edit)Microsoft (Office 2007 And Math Edit)
Microsoft (Office 2007 And Math Edit)Vinayak Hegde
 
Microsoft (Intro To Office)
Microsoft (Intro To Office)Microsoft (Intro To Office)
Microsoft (Intro To Office)Vinayak Hegde
 
Antarctica Information 2009
Antarctica Information 2009Antarctica Information 2009
Antarctica Information 2009Vinayak Hegde
 
Antarctica Be Developed
Antarctica Be DevelopedAntarctica Be Developed
Antarctica Be DevelopedVinayak Hegde
 
Operation Taj Real Heroes
Operation Taj Real HeroesOperation Taj Real Heroes
Operation Taj Real HeroesVinayak Hegde
 
Karnataka Nature Snaps
Karnataka Nature SnapsKarnataka Nature Snaps
Karnataka Nature SnapsVinayak Hegde
 
China Poisoned Milk Must Know For Your Own Safety
China Poisoned Milk   Must Know For Your Own SafetyChina Poisoned Milk   Must Know For Your Own Safety
China Poisoned Milk Must Know For Your Own SafetyVinayak Hegde
 

Mehr von Vinayak Hegde (20)

Microsoft (Virtualization 2008)
Microsoft (Virtualization 2008)Microsoft (Virtualization 2008)
Microsoft (Virtualization 2008)
 
Microsoft (Silverlight)
Microsoft (Silverlight)Microsoft (Silverlight)
Microsoft (Silverlight)
 
Microsoft (Intro To Office)
Microsoft (Intro To Office)Microsoft (Intro To Office)
Microsoft (Intro To Office)
 
Smart Antennas
Smart AntennasSmart Antennas
Smart Antennas
 
Microsoft (Strength And Weakness)
Microsoft (Strength And Weakness)Microsoft (Strength And Weakness)
Microsoft (Strength And Weakness)
 
Microsoft (SQL Server)
Microsoft (SQL Server)Microsoft (SQL Server)
Microsoft (SQL Server)
 
Microsoft (Projects)
Microsoft (Projects)Microsoft (Projects)
Microsoft (Projects)
 
Microsoft (Office 2007)
Microsoft (Office 2007)Microsoft (Office 2007)
Microsoft (Office 2007)
 
Microsoft (Office 2007 And Math Edit)
Microsoft (Office 2007 And Math Edit)Microsoft (Office 2007 And Math Edit)
Microsoft (Office 2007 And Math Edit)
 
Microsoft (Intro To Office)
Microsoft (Intro To Office)Microsoft (Intro To Office)
Microsoft (Intro To Office)
 
IBMSoftware
IBMSoftwareIBMSoftware
IBMSoftware
 
Antarctica Information 2009
Antarctica Information 2009Antarctica Information 2009
Antarctica Information 2009
 
Antarctica Be Developed
Antarctica Be DevelopedAntarctica Be Developed
Antarctica Be Developed
 
Operation Taj Real Heroes
Operation Taj Real HeroesOperation Taj Real Heroes
Operation Taj Real Heroes
 
Karnataka Nature Snaps
Karnataka Nature SnapsKarnataka Nature Snaps
Karnataka Nature Snaps
 
Fitness Check
Fitness CheckFitness Check
Fitness Check
 
China Poisoned Milk Must Know For Your Own Safety
China Poisoned Milk   Must Know For Your Own SafetyChina Poisoned Milk   Must Know For Your Own Safety
China Poisoned Milk Must Know For Your Own Safety
 
Bmx Tricks (Game)
Bmx Tricks (Game)Bmx Tricks (Game)
Bmx Tricks (Game)
 
Best Websites List
Best Websites ListBest Websites List
Best Websites List
 
Autobahn (Game)
Autobahn (Game)Autobahn (Game)
Autobahn (Game)
 

Kürzlich hochgeladen

GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 

Kürzlich hochgeladen (20)

LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 

Python

  • 1. Types Python 2.4 Quick Reference Card Styles : keyword function/method type replaced_expression variable  basestring1 bool buffer complex dict exception file float  literal module module_filename language_syntax ©2005-2006 - Laurent Pointal <laurent.pointal@laposte.net> frozenset global int list long object set slice str tuple  Notations : type unicode xrange V0.56 — 2006­5­31 — PQRC at http://laurent.pointal.org/python/pqrc f(…)→ return value f(…)®return nothing (procedure) 1 basestring is virtual superclass of str and unicode. [x] for a list of x data, (x) for a tuple of x data, may have x{n}→ n Long Python Quick Reference at http://rgruet.free.fr/ This doc uses string when unicode and str can apply. times x data. Original Python reference at http://www.python.org/doc Functions ENVIRONMENT VARIABLES License : Creative Commons [by nc sa]. Constructor functions of builtin types are directly accessible in builtins. CARDS CONTENT PYTHONCASEOK no case distinction in module→file mapping __import__ abs apply1 callable chr classmethod cmp coerce  1 1 PYTHONDEBUG = -d command-line option compile delattr dir divmod enumerate eval execfile filter  Environment Variables............................1 Copying Containers............................8 PYTHONHOME Modify standard Python libs prefix and exec prefix Command-line Options............................1 Overriding Containers Operations......8 getattr globals hasattr hash  help hex id input intern2  Files Extensions.......................................1 Sequences...............................................8 locations. Use <prefix>[:<execprefix>]. isinstance issubclass iter len locals map max min oct open  Language Keywords................................1 Lists & Tuples.................................... ..8 1 PYTHONINSPECT = -i command-line option ord pow property range raw_input reduce reload repr  Builtins....................................................1 Operations on Sequences...................8 1 PYTHONOPTIMIZE = -O command-line option Types...................................................1 Indexing...................................... ........8 reversed round set setattr sorted staticmethod sum super  PYTHONPATH Directories where Python search when importing Functions............................................1 Operations on mutable sequences.....8 unichr vars zip modules/packages. Separator : (posix) or ; Statements..............................................1 Overriding Sequences Operations......8 1 Blocks.................................................1 Mappings (dictionaries)...........................8 Use f(*args,**kargs) in place of apply(f,args,kargs). (windows). Under windows use registry Assignment Shortcuts.........................1 Operations on Mappings.....................8 2 Don't use intern. HKLMSofware…. Console & Interactive Input/Output.........2 Overriding Mapping Operations..........8 PYTHONSTARTUP File to load at begining of interactive sessions. STATEMENTS Objects, Names and Namespaces...........2 Other Mappings..................................8 1 PYTHONUNBUFFERED = -u command-line option Identifiers............................................2 Sets.........................................................9 1 One statement per line1. Can continue on next line if an expression or a PYTHONVERBOSE = -v command-line option Objects and Names, Reference Operations on Sets.............................9 1 If set to non-empty value. string is not finished ( ( [ { quot;quot;quot; ''' not closed), or with a at end of Counting.............................................2 Other Containers Structures, Algorithms 9 Mutable/Immutable Objects...............2 Array............................................. .....9 . line. COMMAND-LINE OPTIONS Namespaces.......................................2 Queue.................................................9 Char # start comments up to end of line. Constants, Enumerations...................2 Priority Queues...................................9 python [-dEhiOQStuUvVWx] [-c cmd | -m mod | file | -] [args] Flow Control............................................2 Sorted List...........................................9 pass Null statement. -d Output debugging infos from parser. Condition............................................2 Iteration Tools.....................................9 Assertion check expression true. assert expr[,message] -E Ignore environment variables. Loop....................................................2 Date & Time............................................9 del name[,…] Remove name → object binding. Functions/methods exit......................2 Module time........................................9 -h Print help and exit. Exceptions..........................................2 Module datetime...............................10 Write expr to sys.stdout2. print [>>obj,][expr[,…][,] -i Force interactive mode with prompt (even after script Iterable Protocol.................................2 Module timeit....................................10 execution). exec expr [in globals [, locals]] Execute expr in namespaces. Interpretation / Execution.......................2 Other Modules..................................10 Optimize generated bytecode, remove assert checks. -O fct([expr[,…]],[name=expr[,…]] Call any callable object fct with given Functions Definitions & Usage.................2 Files.......................................................10 -OO As -O and remove documentation strings. arguments (see Functions Definitions & Parameters / Return value..................2 File Objects.......................................10 [,*args][,**kwargs]) Lambda functions...............................2 Low-level Files...................................10 -Q arg Division option, arg in [old(default),warn,warnall,new]. Usage - p2). Callable Objects..................................2 Pipes.................................................10 Assignment operator3. name[,…] = expr -S Don't import site.py definitions module. Calling Functions.................................2 In-memory Files................................10 -t Warn inconsistent tab/space usage (-tt exit with error). Functions Control................................3 Files Informations..............................11 Multiple statements on same line using ; separator - avoid if not 1 -u Use unbuffered binary output for stdout and stderr. Decorators..........................................3 Terminal Operations..........................11 necessary. -U Force use of unicode literals for strings. Types/Classes & Objects..........................3 Temporary Files.................................11 2 Write to any specified object following file interface (write method). -v Trace imports. Class Definition...................................3 Path Manipulations...........................11 Write space between expressions, line-return at end of line except with Object Creation...................................3 Directories........................................11 -V Print version number and exit. a final ,. Classes & Objects Relations...............3 Special Files......................................12 -W arg Emit warning for arg quot;action:message:category:module:linenoquot; Attributes Manipulation......................3 Copying, Moving, Removing.............12 3 Left part name can be container expression. If expr is a sequence of -x Skip first line of source (fort non-Unix forms of #!cmd). Special Methods.................................3 Encoded Files.................................... 12 multiple values, can unpack into multiple names. Can have multiple -c cmd Execute cmd. Descriptors protocol...........................3 Serialization......................................12 assignments of same value on same line : a = b = c = expr. -m mod Search module mod in sys.path and runs it as main script. Copying Objects..................................3 Persistence.......................................12 Other statements (loops, conditions…) introduced in respective parts. Python script file to execute. file Introspection.......................................3 Configuration Files............................12 Modules and Packages............................3 Exceptions.............................................12 Command-line arguments for cmd/file, available in args Blocks Source encodings...............................3 Standard Exception Classes.............12 sys.argv[1:]. A : between statements defines dependant statements, written on same Special Attributes...............................3 Warnings...........................................13 Main Execution / Script Parameters........3 Exceptions Processing......................13 FILES EXTENSIONS line or written on following line(s) with deeper indentation. Operators................................................4 Encoding - Decoding.............................13 Blocks of statements are simply lines at same indentation level. Priority................................................4 Threads & Synchronization...................13 .py=source, .pyc=bytecode, .pyo=bytecode optimized, .pyd=binary if x<=0 : return 1 Arithmetic Operators..........................4 Threading Functions.........................13 module, .dll/.so=dynamic library. if asin(v)>pi/4 : Comparison Operators........................4 Threads.............................................13 .pyw=source associated to pythonw.exe on Windows platform, to run     a = pi/2 Operators as Functions.......................4 Mutual Exclusion...............................13 without opening a console. Booleans..................................................4 Events...............................................13     b = ­pi/2 Numbers..................................................4 Semaphores......................................13 LANGUAGE KEYWORDS else : Operators............................................4 Condition Variables...........................13     a = asin(v) Functions............................................4 Synchronized Queues.......................13 List of keywords in standard module keyword.     b = pi/2­a Bit Level Operations................................5 Process..................................................13 and as1 assert break class continue def del elif else  Operators............................................5 Current Process.................................13 Statement continuation lines don't care indentation. except exec finally for from global if import in is lambda  Strings....................................................5 . Signal Handling.................................14 To avoid problems, configure your editor to use 4 spaces in place of Escape sequences..............................5 Simple External Process Control.......14 not or pass print raise return try while yield  tabs. Unicode strings...................................5 Advanced External Process Control. .15 1 not reserved, but avoid to redefine it. Assignment Shortcuts Methods and Functions.......................5 XML Processing.....................................15 Don't redefine these constants : None, True, False. Formating...........................................6 SAX - Event-driven............................15 a += b a ­= b a *= b a /= b Constants............................................6 DOM - In-memory Tree......................16 BUILTINS a //= b a %= b a **= b Regular Expressions...........................6 Databases.............................................17 Localization.........................................7 Generic access to DBM-style DBs.....17 a &= b a |= b a ^= b a >>= b a <<= b Available directly everywhere with no specific import. Defined also in Multilingual Support............................7 Standard DB API for SQL databases .17 module __builtins__. Evaluate a once, and assign to a the result of operator before = applied Containers............................................. .8. Tools......................................................18 Operations on Containers...................8 1a 1b 1c
  • 2. from enclosing definitions, then globals, then builtins. enumerate(iterable)→ iterator returning tuples (index,value) from iterable to current a and b. Example : a%=b ≈ a=a%b Out-of-scope name → use the dotted attribute notation x.y (maybe Iterators Objects Interface CONSOLE & INTERACTIVE INPUT/OUTPUT x.y.z.t)… where x is a name visible within the current scope. next(self)→ next item1 print expression[,…] Class namespace → names defined in a class (class members). __iter__(self)→ iterator object itself input([prompt]) → evaluation of user input (typed data) Object namespace → names usable with object.name notation (attributes, 1 When reach end of collection, raise StopIteration exception on raw_input([prompt]) → str: user input as a raw string methods). subsequent calls (ie. iterator usable only one time on a collection). Direct manipulation (redefinition) of stdin/stdout/stderr via sys module : Namespaces can be nested, inner namespaces hidding identical names Generators sys.stdin sys.stdout sys.stderr from outer namespaces. sys.__stdin__ sys.__stdout__ sys.__stderr__ Functions retaining their state between two calls. Return values using dir([object]) → list: names defined in object namespace1 yield. Stop generation via simple return or via raise StopIteration. All are files or files-like objects. The __xxx__ forms keep access to vars([object]) → dict2: identifier:value of object as a namespace1 1) build generator from function : gen=generatorfct(args) original standard IO streams. if object not specified use nearest namespace (locals). 1 Ctrl-C raises KeyboardInterrupt exception. 2) use gen.next() values until StopIteration is raised. must not be modified. 2 _ → value of last expression evaluation Generator iterable expressions with : (x for x in iterable where cond) Constants, Enumerations help([object]) ® print online documentation Use uppercase and _ for constants identifiers (good practice). May define Operations with/on Iterable sys.displayhook → (rw) fct(value) called to display value namespaces to group constants. Cannot avoid global/local name sys.__displayhook__ → backup of original displayhook function See Operations on Containers (p8). redefinition (can eventually define namespaces as classes with sys.ps1 → str: primary interpreter prompt attributes access control - not in Python spirit, and execution cost). See Iteration Tools (p9). See third party modules pyenum for strict enum-like namespace. sys.ps2 → str: secondary (continuation) interpreter prompt INTERPRETATION / EXECUTION FLOW CONTROL See external package ipython for an enhanced interactive Python shell. compile(string1,filename,kind2[,flags3[,dont_inherit3]]) → code object OBJECTS, NAMES NAMESPACES eval(expression[,globals[,locals]]) → value: evaluation4 of expression string AND Condition Loop eval(code_object[,globals[,locals]]) → value: evaluation4 of code object if cond : inst Identifiers for var[,…] in iterable : inst exec5 statements [in globals[,locals]] ® statements string1 executed4 [ elif cond : inst ] Use : [a-zA-Z_][a-zA-Z0-9_]* [ else : inst ] execfile(filename[,globals[,locals]])® file interpreted4 [ else : inst ] Special usage for underscore : while cond : inst _xxx global not imported by import * 1 Multi-line statements in source code must use n as newline, and There is no 'switch' or 'case'. [ else : inst ] _xxx implementation detail, for internal use (good practice) must be terminated by a newline. Can use if elif elif… else. __xxx 'private' class members, defined as _ClassName__xxx 2 Kind relative to string content, 'exec' → sequence of statements, Exit loop with break. Can use a mapping with __xxx__ normally reserved by Python 'eval' → single expression, 'single' → single interactive statement. functions bound to cases. Go to next iteration with continue. Case is significant : This_Name != THIS_NAME. 3 Flags and dont_inherit are for future statements (see doc). Loops else blocs only executed when 4 In context of globals and locals namespaces. Objects and Names, Reference Counting loop exit normally (without break). 5 Exec is a langage statement, others are builtin functions. Data are typed objects (all data), names are dynamically bound to Functions/methods exit FUNCTIONS DEFINITIONS & USAGE objects. Exit function/method with return [value] = assignment statement bind result of right part evaluation into left part Exit from generator body with yield value def fctname([paramname[=defaultvalue][,…]] [,*args][,**kwargs]) : name(s)/container(s). Examples : Multiple returned values using tuple data. instructions a = 3*c+5 a,b = (quot;Helloquot;,quot;Worldquot;) x,y,tabz[i] = fct(i) Cannot yield within a try/finally block. Parameters / Return value s = quot;Helloquot; pi,e = 3.14,2.71 a,b = b,a Exceptions Parameters are passed by references to objects. When an object is no longer referenced (by names or by containers), it is try : inst You can modify values of mutable objects types. destroyed (its __del__ method is then called). You cannot modify values of immutable objects types - as if they were   [,    ]] : inst except  except_class   value         [                   sys.getrefcount(object)→ int: current reference counter of object passed by value. … Notation *  → variable list of anonymous parameters in a tuple. [ else : inst ] Standard module weakref define tools to allow objects to be garbage Notation ** → variable list of named parameters in a dict. Can have a tuple of classes for except_class. Not specifying a class collected when necessary and dynamically re-created on-demand. Return value(s) with return [value[,…]] catch all exceptions. Mutable/Immutable Objects Block else executed when try block exit normally. For multiple values, return a tuple. If no return value specified or if end Mutable objects can be modified in place. Immutable objects cannot be of function definition reached, return None value. try : inst modified (must build a new object with new value). Lambda functions Immutable : bool, int, long, float, complex, string, unicode, finally : inst tuple, frozenset, buffer, slice. lambda param[,…] : expression Process finally block in all execution paths (normal or exception). Mutable : list, set, dict and other high level class objects. Anonymous functions defined inline. Result of expression evaluation is raise exception_class[,value[,traceback]] There is no constant definition. Just use uppercase names to identify returned (it must be an expression, no loop, no condition). raise exception_object symbols which must not be modified. Expression uses values known at definition time (except for params). raise Namespaces Callable Objects Last form re-raise the currently catched exception in an exception Places where Python found names. Objects having a __call__ method can be used as functions. handler. Builtins namespace → names from module __builtins__, already Methods bound to objects can be used as functions : f = o.meth Iterable Protocol available. callable(x) → bool: test x callable with x(…) Generic and simple protocol allowing to iterate on any collection of data. Global namespace → names defined at module level (zero indentation). Objects of class defining __iter__ or __getitem__ are iterable (directly Calling Functions Local namespace → names defined in methods/functions. usable in for loops). [name=] fctname([expr[,…]][,name=expr[,…][,*args][,**args]) del name ® remove existing name from namespace (remove object binding) __iter__(self) → iterator on self Anonymous parameters passed in parameters order declaration. globals() → dict: identifier→value of global namespace iter(object) → iterator on iterable object Params having default value can be omitted. locals() → dict: identifier→value of local namespace iter(callable,sentinel) → iterator returning callable() values up to sentinel Notation *  → pass variable list of anonymous parameters in a tuple. Current scope → names directly usable. Searched in locals, then locals 2a 2b 2c
  • 3. Notation ** → pass variable list of named parameters in a dict. Object Life For copying, objects can define pickling protocol too (see Files - Serialization - p12), in place of __copy__ and __deepcopy__. __new__(classref,initargs…)→ object of classref type, already initialized1 Functions Control Introspection __init__ (self,initargs…)® called to initialize object with initargs sys.getrecursionlimit()→ int: current recursion limit for functions Beyond this documentation. Many __xxx___ attributes are defined, __del__ (self)® called when object will be destroyed sys.setrecursionlimit(limit) ® set recursion limit for functions 1 some are writable (see other docs). If don't return a classref object, then object.__init__ is called with Decorators initargs. See standard module inspect to manipulate these data. Glue code (functions) called at functions and methods definitions time, Object Cast Example of Introspection Attributes return the final function/method (generally with wrapping code). @  ( __repr__(self)→ str: called for repr(self) and `self` [   )]   decoratorname   decorator_arguments   […] Note: classes are objects too!         __str__(self) → str: called for str(self) and print self __base__ → list: parent classes of a class def fct(fct_rguments):… __coerce__(self,other) → value, called for coerce(self,other) __slots__ → tuple: allowed objects attributes names1 of a class @dec1 @dec2(args) @dec3 def fct(…):… like __class__ → class/type: object's class fct = dec1(dec2(args)(dec3(fct)))) Object Hash Key def fct(…):… ® __dict__ → dict: defined attributes (object namespace) of an instance See page PythonDecoratorLibrary in python.org Wiki for some decorators __hash__(self)→ int: hash code for object, used for hash(obj)and quick __doc__ → string: documentation string of a package, module, class, function mapping keys comparison - default implementation use hash(id(self)) definitions. __name__ → str: object definition name of a function TYPES/CLASSES & OBJECTS Attributes access __file__ → string: pathname of loaded module .pyc, .pyo or .pyd See also quot;Descriptors protocolquot; infra. 1 List of allowed attributes names. Usage discouraged. All data are typed objects relying to classes. __getattr__(self,name)→ value, called for undefined attributes type(o) → type: type object of o __getattribute__(self, name)→ value, always called MODULES PACKAGES Standard module types define type objects for builtins types. AND __setattr__(self, name, value)® called for obj.name=value Class Definition File gabuzo.py ® module gabuzo. __delattr__(self, name)® called for del obj.name class classname [(parentclass[,…])] : Directory kramed/ with a file __init__.py ® package kramed. __hash__(self)→ int: 32 bits hash code, called for hash(obj) and dict  varname = expr ® varname defined in classname namespace Can have sub-packages (subdirectories having __init__.py file). operations def metname(self[,…]): ® define methods like functions Searched in the Python PATH. __call__(self, *args, **kwargs)→ value, called for obj(…) Support multiple inheritance. Can inherit from builtin class. Current Python PATH stored in sys.path list. Contains directories and Static method / Class method Inherit at least from object base class => Python 'new style class'. .zip files paths. Built from location of standard Python modules, Use standard decorators (see Decorators p3). First parameter of methods is target object, standard use self name. PYTHONPATH environment variable, directory of main module given on class ClassName : Access class members via class name, object members via self. command line, data specified in lines of .pth files found in Python home     @staticmethod directory, and data specified in registry under Windows. This doc consider you use new style class (inheriting from object). Current list of loaded modules stored in sys.modules map (main module     def methodname(…): … Metaclass is under key __main__).     @classmethod Class definition create a new type. It can be done 'by hand' with :     def methodname(classref,…): … import module [as alias] [,…] x = type('classname',(parentclass,[…]),{varname:expr[,…]} from module import name [as alias] [,…] Descriptors protocol def metname(self[,…]): from module import * Descriptors are attribute objects controling access to attributes values. x.metname = metname reload(module) ® module is reloaded (but old references still on old module They must define some of following methods : This allow creation of metaclass classes (class building other class). __get__(self,obj,ownerclass)→ attribute value for obj content) Object Creation Import can use package path (ex:from encoding.aliases import…). __set__(self,obj,value)® modify attribute in obj, set to value obj = ClassName(initargs…) Direct import from a package use definitions from __init__.py file. __delete__(self,obj)® remove attribute from obj In cas of exception during initialization, object is destroyed when exiting Very careful with import * as imported names override names already In these methods self is the descriptor object, and obj is the target init code (reference counter reach zero). defined. object which attribute is manipulated. To limit your modules names exported and visible by import *, define Classes & Objects Relations Properties module global __all__ with list of exported names (or use global isinstance(obj,classinfo) → bool: test object of type/class classinfo A descriptor to directly bind methods/functions to control attribute names _xxx). issubclass(aclass, aparent) → bool: test same class or parent relationship access. Use builtin type property with init args. See __import__ builtin function, imp builtin module and ihooks module. Prefer isinstance() to type() for type checking. class MyClass : __import__(modulename[, globals[,locals[,lnameslist]]]) Parent class methods are not automatically called if overriden in attributename = property(getter,setter,deleter,description) subclass - they must be explicitly called if necessary. Source encodings Each init arg default to None (ie. undefined). Call parent methods via super function : See PEP 263. Declare source files encoding in first or second line in a Copying Objects super(ThisClass,self).methodname(self,args…) special comment. Assignment only duplicate references. To shallow copy an object (build a # ­*­ coding: encoding_name ­*­ Or the old way, via parent class namespace : new one with same values - referencing same content), or to deep copy If this is not specified, Python use sys.getdefaultencoding() value ParentClass.methodname(self,args…) an object (deep-copying referenced content), see object copy methods, (see modules sitecustomize.py and user.py). Attributes Manipulation and functions in standard module copy. It is important to specify encoding of your modules as uquot;…quot; strings use object.name = value copy.copy(object)→ value: shallow copy of object it to correctly build unicode literals. setattr(object,name,value) ® object attribute set to value copy.deepcopy(object[[,memo],_nil])→ value: deep copy of object1 Special Attributes Params memo and nil are used in recursive deepcopy, their default object.name → value of object attribute 1 __name__ → str: module name, '__main__' for command-line called script getattr(object,name[,default])→ value of object attribute values are None and empty list. __file__ → string: pathname of compiled module loaded del object.name Copy Protocol MAIN EXECUTION / SCRIPT PARAMETERS delattr(object,name) ® object attribute removed __copy__(self)→  value: shallow copy of self, called by copy.copy(…) Special Methods The 'main' module is the module called via command-line (or executed __deepcopy__(self,memo)→  value: deep copy of self, called by by shell with first script line #! /bin/env python). Other special overridable __xxx___ methods are listed in respective copy.deepcopy(…) Command-line parameters are available in sys.argv (a python list). sections. 3a 3b 3c
  • 4. BOOLEANS At end of module, we may have : Comparison Overriding if __name__=='__main__' : __lt__(self, other)→ bool1 : called for self < other False : None, zero numbers, empty containers. False → 0.     # main code __le__(self, other)→ bool1 : called for self <= other True : if not false. True → 1.     # generally call a 'main' function: __gt__(self, other)→ bool1 : called for self > other bool(expr) → True | False     mainfunction(sys.argv[1:]) __ge__(self, other)→ bool1 : called for self >= other Logical not : not expr     # or in lib modules, execute test/demo code... __eq__(self, other)→ bool1 : called for self == other Logical and : expr1 and expr2 Execution exit after last main module instruction (in multithread, wait Logical or : expr1 or expr2 __ne__(self, other)→ bool1 : called for self != other also for end of non-daemon threads), unless interactive mode is forced. Logical and and or use short path evaluation. and for self <> other Can force exit with calling sys.exit(code), which raise a SystemExit  __cmp__(self,other)→ int : called for self compared to other, Bool Cast Overriding exception - see Current Process - Exiting (p13). self<other→value<0, self==other→value=0, self>other→value>0 __nonzero__(self) → bool : test object itself1 OPERATORS Any value usable as boolean value, or a NotImplemented value if 1 1 If __nonzero__ undefined, look at __len__, else object is true. Deal with arithmetic, boolean logic, bit level, indexing and slicing. cannot compare with such other type. NUMBERS Priority Operators as Functions Builtin integer types : int (like C long), long (unlimited integer) 1 (a,…) [a,…  6 x+y 11 x<y x<=y x>y x>=y x==y x!=y Operators are also defined as functions in standard operator module.        ] int(expr[,base=10]) → int: cast of expr {a:b,…  `…  x­y x<>y x is y x is not y x in s              `   } Comparison long(expr[,base=10]) → long: cast of expr x not in s lt(a,b) = __lt__(a,b) ne(a,b) = __ne__(a,b) Builtin floating point types : float (like C double), complex (real and 2 s[i] s[i:j] 7 x<<y 12 not       x    le(a,b) = __le__(a,b) ge(a,b) = __ge__(a,b) imaginary parts are float). x>>y s.attr f(…) float(expr) → float: representation of expr eq(a,b) = __eq__(a,b) gt(a,b) = __gt__(a,b) 13 x and y 3 +x  ­x  ~x   8 x&y          complex(x[,y]) → complex: number: x+yj Logical / Boolean [x+]yj → complex: number, ex: 3+4j -8.2j 4 x**y 9 x^y 14 x or y not_(o) = __not__(o) and_(a,b) = __and__(a,b) c.real → float: real part of complex number 5 x*y x/y x%y 10 x|y 15 lambda    :expr truth(o) or_(a,b) = __or__(a,b)     args        c.img → float: imaginary part of complex number is_(a,b) xor(a,b) = __xor__(a,b) Arithmetic Operators c.conjugate() → complex: conjugate of complex number (real,-img) is_not(a,b) Can be defined for any data type. Maximum int integer in sys.maxint. Arithmetic Automatic conversions between numeric types. Arithmetic Overriding Automatic conversions from int to long when result overflow max int. abs(o) = __abs__(o) truediv(a,b) = __truediv__(a,b) __add__(self,other) →  value: called for self + other Direct conversions from/to strings from/to int, long… via types add(a,b) = __add__(a,b) floordiv(a,b) = __floordiv__(a,b) __sub__(self,other) →  value: called for self ­ other constructors. sub(a,b) = __sub__(a,b) neg(o) = __neg__(o) Type Decimal defined in standard module decimal. __mul__(self,other) →  value: called for self * other mul(a,b) = __mul__(a,b) pos(o) = __pos__(o) Base fixed type compact storage arrays in standard module array. __div__(self,other) →  value: called1 for self / other div(a,b) = __div__(a,b) pow(a,b) = __pow__(a,b) __truediv__(self,other) → value: called2 for self / other Operators mod(a,b) = __mod__(a,b) __floordiv__(self,other) →  value: called for self // other ­x +x x+y x­y x*y x/y 1 x//y 1 x%y 2 x**y 2 Bit Level With from __future__ import division, / is true division (1/2→0.5), __mod__(self,other) →  value: called for self % other 1 lshift(a,b) = __lshift__(a,b) and // is floor division (1//2→0). Else for integers / is still floor division. __divmod__(self,other) →  value: called for divmod(self,other) rshift(a,b) = __rshift__(a,b) % is remainder operator, ** is power elevation operator (same as pow). 2 __pow__(self,other) →  value: called for self ** other inv(o) = invert(o) = __inv__(o) = __invert__(o) __nonzero__(self)→  value: called for nonzero(self) Functions Sequences Some functions in builtins. __neg__(self) →  value: called for ­self abs(x) → absolute value of x concat(a,b) = __concat__(a,b) __pos__(self) →  value: called for +self divmod(x,y) → (x/y,x%y) contains(a,b) = __contains__(a,b) __abs__(self) →  value: called for abs(self) oct(integer) → str: octal representation of integer number countOf(a,b) __iadd__(self,other) ® called for self += other hex(integer) → str: hexadecimal representation of integer number indexOf(a,b) __isub__(self,other) ® called for self ­= other repeat(a,b) = __repeat__(a,b) Math Functions __imul__(self,other) ® called for self *= other setitem(a,b,c) = __setitem__(a,b,c) Standard floating point functions/data in standard math module. __idiv__(self,other) ® called1 for self /= other getitem(a,b) = __getitem__(a,b) acos(x) → float: radians angle for x cosinus value : [-1…1] →[0…π] __itruediv__(self,other) ® called2 for self /= other delitem(a,b) = __delitem__(a,b) asin(x) → float: radians angle for x sinus value : [-1…1] →[-π/2…+π/2] __ifloordiv__(self, other) ® called for self //= other setslice(a,b,c,v) = __setslice__(a,b,c,v) atan(x) → float: radians angle for x tangent value : [-∞…∞] →]-π/2…+π/2[ __imod__(self,other) ® called for self %= other getslice(a,b,c) = __getslice__(a,b,c) atan2(x,y) → float: randians angle for x/y tangent value __ipow__(self,other) ® called for self **= other delslice(a,b,c) = __delslice__(a,b,c) 1 without / 2 with from __futur__ import division ceil(x) → float: smallest integral value >= x Binary operators __xxx__ have also __rxxx__ forms, called when Type Testing cos(x) → float: cosinus value for radians angle x target object is on right side. cosh(x) → float: hyperbolic cosinus value for radians angle x These functions must be considered as not reliable. Comparison Operators isMappingType(o) exp(x) → float: exponential of x = ex Operators can compare any data types. isNumberType(o) fabs(x) → float: absolute value of x Compare values with < <= > >= == != <>. isSequenceType(o) floor(x) → float: largest integral value <= x Test objects identity with is and is not (compare on id(obj)). fmod(x,y) → float: modulo = remainder of x/y Attribute and Item Lookup Direct composition of comparators is allowed in expressions : x<y<=z>t. frexp(x) → (float,int): (m,y) m mantissa of x,y exponent of x — where attrgetter(attr) → fct: where fct(x)→x.attr Builtin function cmp(o1,o2) → ­1 (o1 < o2), 0 (o1 == o2), 1 (o1 > o2) x=m*2y itemgetter(item) → fct: where fct(x)→x[item] ldepx(x,i) → x * (2**i) 4a 4b 4c