mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			541 lines
		
	
	
	
		
			22 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			541 lines
		
	
	
	
		
			22 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|  			  A Python Bestiary
 | |
| 		 Itemizing Python Objects and Nuances
 | |
| 
 | |
|    $Revision$ $Date$ 	ken.manheimer@nist.gov
 | |
| 
 | |
|   			   Notable lexical entities
 | |
| 			   ========================
 | |
| 
 | |
|     Keywords
 | |
| 
 | |
|      	access	       and	      break	     class
 | |
|      	continue       def	      del	     elif
 | |
|      	else	       except	      exec	     finally
 | |
|      	for	       from	      global	     if
 | |
|      	import	       in	      is	     lambda
 | |
|      	not	       or	      pass	     print
 | |
|      	raise	       return	      try	     while
 | |
| 
 | |
|     String Literal Escapes
 | |
| 
 | |
|      \newline  Ignored (escape newline)
 | |
|      \\ Backslash (\)	     \e Escape (ESC)		\v Vertical Tab (VT)
 | |
|      \' Single quote (')     \f Formfeed (FF)		\0XX  char with
 | |
|      \" Double quote (")     \n Linefeed (LF)		      octal value XX
 | |
|      \a Bell (BEL)	     \r Carriage Return (CR)	\xXX  char with
 | |
|      \b Backspace (BS)	     \t Horizontal Tab (TAB)	      hex value XX
 | |
| 
 | |
|     Illegitimate Tokens (only valid in strings): @ $ ?
 | |
| 
 | |
|    Operating environment (Unix)
 | |
| 
 | |
|     Shell environment vars:
 | |
| 
 | |
|      PYTHONPATH:    dirs to be prepended to module search path; a la shell PATH
 | |
|      PYTHONSTARTUP: names path of file to be loaded on interactive startup
 | |
| 
 | |
|     Internal (module sys) vars ('import sys' to refer to them):
 | |
| 
 | |
|      argv		- list of command and arguments passed to python script
 | |
|      builtin_module_names - list of names of modules compiled in to python
 | |
|    ( exc_* values are set only during handling of a raised exception)
 | |
|      exc_type		- type of exception being handled
 | |
|      exc_value		- exception's parameter ('raise's 2nd arg)
 | |
|      exc_traceback	- exception's traceback obj
 | |
|      exit(N)		- exit from python with status N, by raising SystemExit
 | |
|      exitfunc		- function hook, to be called on exit if set
 | |
|      last_type		- type of last unhandled exception
 | |
|      last_value		- value of last unhandled exception
 | |
|      last_traceback	- traceback of last unhandled exception
 | |
|      modules		- list of modules already loaded
 | |
|      path		- list of strings specifying module-load search path
 | |
|      ps1='>>>'		- string specifying primary prompt, iff interactive
 | |
|      ps2='...'		- string specifying secondary prompt, iff interactive
 | |
|      settrace		- system trace function, used by debuggers, etc
 | |
|      setprofile		- system profile function
 | |
|      stdin		- standard input file object
 | |
|      stdout		- standard output file object
 | |
|      stderr		- standard error file object
 | |
|      tracebacklimit=1000 - maximum number of traceback levels to print
 | |
| 
 | |
| 
 | |
|      Objects - behaviors, special attributes, operations, statements, etc
 | |
|      ====================================================================
 | |
| 
 | |
|     General object aspects
 | |
| 
 | |
|      Boolean values and operators
 | |
| 
 | |
|       False values:	None, numeric zeros, empty sequences and mappings
 | |
|       True values:	all other values
 | |
| 
 | |
|       not X: if X is false then 1, else 0
 | |
|     ( 'or', 'and' evaluate second arg only if necessary to determine outcome)
 | |
|       X or Y: if X is false then Y, else X
 | |
|       X and Y: if X is false then X, else Y
 | |
| 
 | |
|      Special methods for any type				(s: self)
 | |
| 
 | |
|       id(obj)		unique identifier for object (currently, its address)
 | |
|       __init__(s, args)	object instantiation - see Classes, below
 | |
|       __del__(s)	object demise
 | |
|       __repr__(s)	repr() and `...` conversions
 | |
|       __str__(s)	str() and 'print' statement
 | |
|       __cmp__(s)	implements <, ==, >, <=, <>, !=, >=, is [not]
 | |
|       __hash__(s)	hash() and dictionary operations
 | |
| 
 | |
|      Special informative state attributes for some types:
 | |
| 
 | |
|       X.__dict__	dict used to store object's writeable attributes
 | |
|       X.__methods__	list of X's methods; on many built-in types.
 | |
|       X.__members__	lists of X's data attributes
 | |
|       X.__class__	class to which X belongs
 | |
|       X.__bases__	tuple of X base classes
 | |
| 
 | |
|      General Name Space behavior and binding
 | |
| 
 | |
|       Name space search order: local, global, builtin
 | |
| 
 | |
|       "global" name space = file = module
 | |
|       "local" name space = function or method
 | |
| 
 | |
|       Code Block scopes		(ns = name space, cb = containing block)
 | |
| 
 | |
|      ( global ns generally is containing module, unless overriden by args)
 | |
| 
 | |
|        Code block type	Local ns		Notes
 | |
|        ---------------	--------		-----
 | |
|        Module		same as global ns
 | |
|        Script		same as global ns	global ns is __main__
 | |
|        Interactive cmd	same as global ns	global ns is __main__
 | |
|        Class def	new ns
 | |
|        Function body	new ns
 | |
|        'exec' string	local ns of cb	    (or args)
 | |
|        'eval' string	local ns of caller  (or args)
 | |
|        'execfile' file	local ns of caller  (or args)
 | |
|        'input' expr	local ns of caller
 | |
| 
 | |
|       Binding operations and exceptions:
 | |
| 
 | |
|      ~ SyntaxError: on attempt to bind to literals or other non-bindables
 | |
|      ~ NameError: on attempt to evaluate unbound atom
 | |
| 
 | |
|      ( for object attribute functions, obj: object, nm: string, val: any value)
 | |
|        getattr(obj, nm)		get value of obj.nm
 | |
|        hasattr(obj, nm)		true if obj has nm attribute
 | |
|        setattr(obj, nm, val)	set obj.nm to val
 | |
| 
 | |
|        assignment statement: 	targ1, targ2, ,,, = obj1, obj2, ,,,
 | |
|        deletion statement:	del obj1, obj2, ...
 | |
|        for loop target identifiers, 'except' clauses (see Statements, below)
 | |
|        formal params		(see Callables, below)
 | |
|        import statement		(see Modules objects, below)
 | |
|        class and func defs	(see Callables, below)
 | |
| 
 | |
|       Name space linkage
 | |
| 
 | |
|        global statement: global var, ...	# Interpret 'var's as globals
 | |
|      X access statement: access ...	# control inst and class vars access
 | |
| 
 | |
|    @ Built-in Exceptions
 | |
| 
 | |
|       AttributeError	On attribute reference or assignment failure
 | |
|       EOFError		Immediate end-of-file hit by input() or raw_input()
 | |
|       IOError		I/O-related I/O operation failure
 | |
|       ImportError	On failure of `import' to find module or name
 | |
|       IndexError	On out-of-range sequence subscript
 | |
|       KeyError		On reference to a non-existent mapping (dict) key
 | |
|       KeyboardInterrupt	On user entry of the interrupt key (often `Control-C')
 | |
|       MemoryError	On recoverable memory exhaustion
 | |
|       NameError		On failure to find a local or global (unqualified) name
 | |
|       OverflowError	On excessively large arithmetic operation
 | |
|       RuntimeError	Obsolete catch-all; define a suitable error instead
 | |
|       SyntaxError	On parser encountering a syntax error
 | |
|       SystemError	On non-fatal interpreter error - bug - report it
 | |
|       SystemExit	On `sys.exit()'
 | |
|       TypeError		On passing inappropriate type to built-in op or func
 | |
|       ValueError	On arg error not covered by TypeError or more precise
 | |
|       ZeroDivisionError	On division or modulo operation with 0 as 2nd arg
 | |
| 
 | |
|     			       **** Numbers ****
 | |
| 
 | |
|    @ Integers: 'C' long, >= 32 bits precision; OverflowError if bounds exceeded
 | |
|    @ Long Integers: unlimited precision - '2147483648L'
 | |
|    @ Floating point: machine double-precision floating point - '2147483648.0'
 | |
| 
 | |
|      Numeric operations vs special methods		(s = self, o = other)
 | |
| 
 | |
|       s+o	=  __add__(s,o)		s-o	   =  __sub__(s,o)
 | |
|       s*o	=  __mul__(s,o)		s/o	   =  __div__(s,o)
 | |
|       s%o	=  __mod__(s,o)		divmod(s,o) = __divmod__(s,o)
 | |
|       pow(s,o)	=  __pow__(s,o)
 | |
|       s&o	=  __and__(s,o)		
 | |
|       s^o	=  __xor__(s,o)		s|o	   =  __xor__(s,o)
 | |
|       s<<o	=  __lshift__(s,o)	s>>o	   =  __rshift__(s,o)
 | |
|       nonzero(s) = __nonzero__(s)	coerce(s,o) = __coerce__(s,o)
 | |
|       -s  	=  __neg__(s)		+s	   =  __pos__(s)  
 | |
|       abs(s)	=  __abs__(s)		~s	   =  __invert__(s)  (bitwise)
 | |
|       int(s)  	=  __int__(s)		long(s)	   =  __long__(s)
 | |
|       float(s)	=  __float__(s)
 | |
|       oct(s)  	=  __oct__(s)		hex(s)	   =  __hex__(s)
 | |
| 
 | |
|      Numeric functions:
 | |
| 
 | |
|       range(start=0,end,step=1)  create arithmetic progression list
 | |
|       round(x, n=0)		 round floating point x to n decimal places
 | |
|       xrange(start=0,end,step=1) create virtual arithmetic progressions tuple
 | |
| 
 | |
|      Numeric exceptions:
 | |
| 
 | |
|     ~ TypeError: raised on application of arithemetic opertion to non-number
 | |
|     ~ OverflowError: numeric bounds exceeded
 | |
|     ~ ZeroDivisionError: raised when zero second argument of div or modulo op
 | |
| 
 | |
|     		**** Collections - Sequences and Mappings ****
 | |
| 
 | |
|      Collections general operations vs methods  (s: self, i: index or key)
 | |
| 
 | |
|       len(s)	= __len__(s)	    length of object, >= 0.  Length 0 == false
 | |
|       s[i]	= __getitem__(s,i)  Element at index/key i, origin 0
 | |
| 
 | |
|      Sequences
 | |
| 
 | |
|     @ String (immutable sequence): 'string contents'
 | |
| 
 | |
|        'this is a string'
 | |
|        "and so is this"
 | |
|        ''' and this begins a 'multi-line' string with embedded quotes...
 | |
|        and this is the end of that string.'''
 | |
| 
 | |
|        `expr`		= __repr__(expr), converts arbitrary expr to string
 | |
|        chr(int)	 	string of ascii letter at ordinate in (0 <= int < 256)
 | |
|        ord(string) 	ascii ordinate of string (string must be length 1)
 | |
|        string % arg	format operator, a la C sprintf
 | |
|          arg for single directive can be any (suitable) type
 | |
|          arg for multiple directives must be tuple or dict
 | |
|          dict (mapping) arg uses parenthesized directives that are keys into it
 | |
|          supports %, c, s, i, d, u, o, x, X, e, E, f, g, G directives
 | |
|          * can be width and precision; directs use of corresponding (int) args
 | |
|          * can not be used with dict args
 | |
|          flag characters -, +, blank, #, and 0 understood.
 | |
|          %s conversion takes any python object, converts using `str()'
 | |
|          ANSI directives %p and %n not supported
 | |
|          %s conversions do *not* take \000 as end of string
 | |
| 
 | |
|     @ Tuples (immutable sequence): (oneelem, another, etc)
 | |
| 
 | |
|        parens may be left off all but empty tuples
 | |
|        singletons represented by affixing a comma to an expr
 | |
|        empty tuple represented using empty parens
 | |
| 
 | |
|     @ Lists (mutable sequence): [oneelem, another, etc]
 | |
| 
 | |
|        assignment - must be 1-1 map of items in target and object sequences
 | |
|        deletion - similar rules as for assignment
 | |
| 
 | |
|        List special methods: see mutable sequence ops vs methods, below
 | |
| 
 | |
|       Sequences general ops vs methods	      (s: self, i,j: indices, v: val)
 | |
| 
 | |
|        All collections general methods, plus:
 | |
|        s[i:j]	        __getslice__(s,i,j), all s[k] s.t. i <= k < j
 | |
|        min(s)		smallest item of s
 | |
|        max(s)		largest item of s
 | |
|        v [not] in s	1 if v [not] equal to an item in s, else 0
 | |
|        s + seq		concatenation of s and seq
 | |
|        s * num		num copies of s concatenated, also, `num * s'
 | |
| 
 | |
|       Immutable sequence ops vs methods     (s: self, i,j: indices, v: val)
 | |
| 
 | |
|        All collections and sequences general methods, plus:
 | |
|        s[i:j]	        __getslice__(s,i,j), all s[k] s.t. i <= k < j
 | |
|      ( For s[i:j], len(self) is intrinsically added to i, j < 0)
 | |
|      ( Complex elems of immutable seqs may be mutable, see dictionaries, below)
 | |
| 
 | |
|       Mutable sequence ops vs methods	      (s: self, i,j: indices, v: val)
 | |
| 
 | |
|        All sequences' general methods, plus:
 | |
|      ( for non-slice refs, i < 0 intrinsically has len(s) added)
 | |
|      ( For slice refs, len(s) *is not* intrinsically added to i, j < 0)
 | |
|      ( for assignment/deletion, index refs must point to existing items
 | |
|        s[i]=v		= __setitem__(s,i,v)
 | |
|        del s[i]		= __delitem__(s,i)
 | |
|        s[i:j]		= __getslice__(s,i,j)
 | |
|        s[i:j]=seq	= __setslice__(s,i,j,seq)
 | |
|        del s[i:j]	= __delslice__(s,i,j)	== s[i:j] = []
 | |
|        s.append(seq)	== `s[len(seq):len(seq)] = seq'	(but faster)
 | |
|        s.count(v)	number of i's for which `s[i] == v'
 | |
|        s.index(v)	first i such that `s[i] == v', or IndexError if none
 | |
|        s.insert(i, v)	== `s[i:i] = [v]'
 | |
|        s.remove(v)	== `del s[s.index(v)]', or IndexError if v not in s
 | |
|        s.reverse()	reverse the items of s in place
 | |
|        s.sort()		permute s items so s[i] <= s[j], for i < j
 | |
| 
 | |
|      Mappings
 | |
| 
 | |
|     @ Dictionaries: {key1: val1, key2: val2, ...}
 | |
| 
 | |
|        built-in types as keys must be unalterable: obj & all contents immutable
 | |
|        User-defined classes as keys must have __hash__() and __cmp__() methods
 | |
|      ~ TypeError is raised if key not acceptable
 | |
|      ~ KeyError is raised if reference made using non-existent key
 | |
|        key types may vary (contrary to ref man)
 | |
| 
 | |
|       Dictionaries ops vs methods		(s: self, k: key, v: val)
 | |
| 
 | |
|        all collections general ops, plus:
 | |
|        hash(s)		= __hash__(s) - hash value for dictionary references
 | |
|        s[k]=v		= __setitem__(s,k,v)
 | |
|        del s[k]		= __delitem__(s,k)
 | |
|        s.items()	= a list copy of s's (key, item) pairs
 | |
|        s.keys()		= a list copy of s's keys
 | |
|        s.values()	= a list copy of s's values
 | |
|        s.has_keys(k)	= 1 if s has key k, else 0
 | |
|      ( s.items, .keys, and .values yield random but mutually consistent order)
 | |
| 
 | |
|     			      **** Callables ****
 | |
| 
 | |
|    @ User defined functions: 'def name (param-list): suite'
 | |
| 
 | |
|       suite is not evaluated at statement execution, but at function invocation
 | |
|       function parameters, comma separated on param-list:
 | |
|       func_code: special attr, code object representing compiled function body
 | |
|       func_globals: special attr, ref to global dict of funcs definition module
 | |
|       func(arg-list)	invocation
 | |
| 
 | |
|    @ User defined methods: like functions, with extra implicit arg
 | |
| 
 | |
|       Same as functions, but passed class instance as additional first argument
 | |
|       im_self: special attr, method's class instance object
 | |
|       im_func: special attr, function object
 | |
|       mthd(args)	invocation, same as mthd.im_func(mthd.im_self, args)
 | |
| 
 | |
|    @ Classes: 'class name[ (inheritance)]: suite'
 | |
| 
 | |
|       inheritance list is evaluated, if any, to identify base classes for name
 | |
|       suite is executed in new local name space, which goes to the class object
 | |
|       class name is bound in encompassing local name space
 | |
|       container for dictionary containing class's ns dictionary
 | |
|       __dict__: ro attr, class ns as dictionary object
 | |
|       __bases__: ro attr, class' base classes in tuple
 | |
|       __init__(self, args..): implements object instantiation
 | |
|       __del__(self): implements impending object deletion
 | |
| 
 | |
|    @ Class instances
 | |
| 
 | |
|       __dict__: ro attr, class' attribute dictionary
 | |
|       __class__: ro attr, instance's class object
 | |
| 
 | |
|      Callables special method vs ops		(f: function)
 | |
| 
 | |
|       apply(f, args-tuple)	call f with args-tuple as arg list
 | |
|       compile(str, flnm, kind)	compile string into exectuable code object
 | |
|       eval(str, glbls=, lcls=)	evaluate string as expression (cond_list)
 | |
|       filter(f, seq)		=> seq of seq elems for which f is true
 | |
|       map(f, lst, [lst2, ...])	=> list of f applied to succesive lsts elems
 | |
|       reduce(f, lst, initlzr)	=> value of f applied to elems and cume result
 | |
| 
 | |
|   @ 			 **** Null object: `None' ****
 | |
| 
 | |
|   @		**** Type objects, print as: <type 'int'> ****
 | |
|    ( '<...>' form is only for printing - cannot be entered that way,
 | |
| 
 | |
|      accessed via built-in func 'type()'
 | |
|    ( equal only when identical (same id()),
 | |
|      so can't just use the string name, must use object with the same str val)
 | |
| 
 | |
|   @ 			       **** Modules ****
 | |
| 
 | |
|      functions and methods in a module share module's ("global") namespace
 | |
|      function uses "global" statement to instantiate var in global context
 | |
|      Modules use "import" to incorp other module's names - see Name Spaces
 | |
| 
 | |
|      Special attrs, methods, and operations
 | |
| 
 | |
|       __dict__: attr, module's ns as dictionary; can modify vals but not sruct
 | |
|       __name__: ro attr, module's name as string
 | |
|       import		Instantiate module or module components within another
 | |
|       reload(amod)	Reread an imported module
 | |
| 
 | |
|   @ 				**** Files ****
 | |
| 
 | |
|      wrapper around a C stdio file pointer
 | |
|      sys.stdin, sys.stdout, sys.stderr are standard io-stream file objects
 | |
| 
 | |
|      File operations:
 | |
| 
 | |
|        open(nm, mode='r', bufsize=sysdef)    return new file object
 | |
|        close()		A closed file cannot be read or written anymore.
 | |
|        flush()		Flush the internal buffer, like stdio's `fflush()'.
 | |
|        isatty()		1 if file connected to a tty(-like) device, else 0.
 | |
|        read(SIZE) 	Read up to SIZE bytes frm file, less on EOF or no data
 | |
|        readline()	Read one entire line from the file.
 | |
|        readlines() 	`readline()' til EOF and return list  of lines read.
 | |
|        seek(OFFSET,WHENCE) Set file's current position, like stdio's `fseek()'
 | |
|        tell()		Return file's current position, like stdio's `ftell()'.
 | |
|        write(STR)	Write a string to the file.  There is no return value.
 | |
| 
 | |
|      File functions:
 | |
| 
 | |
|       input(prompt='')	     like raw input but accept '\' line continuations
 | |
|       print exp, exp2, ...  Write values to stdout
 | |
|       raw_input(prompt='')   prompt then read single line of input
 | |
| 
 | |
|     			    **** Internal types ****
 | |
| 
 | |
|    @ Code objects - represent exectuable code - function obj sans context
 | |
|    @ Frame objects - represent executable frames - may occur in traceback objs
 | |
|    @ Traceback objects - stack trace of an exception
 | |
| 
 | |
|    			      Control statements
 | |
| 			      ==================
 | |
| 
 | |
|     		           * Calls and Evaluation *
 | |
| 
 | |
|    ( See also Callables, in Objects section above, for ops and methods.)
 | |
| 
 | |
|      exec: exec expr [ in expr2 [, expr3]]  # Dynamic execution of python code
 | |
|      return: return [expr]	# Leave current func call with expr value
 | |
| 
 | |
|     			  * Conditionals and Loops *
 | |
|    (			See also Boolean values, above)
 | |
| 
 | |
|      break: break		# Terminate nearest enclosing loop
 | |
|      continue: continue		# Continue next cycle of enclosing loop
 | |
|      if:	if cond: suite [\n elif cond: suite \n ...] [\n else: suite]
 | |
|      for:	for targs in conds: suite [ \n else: suite ]
 | |
|      while:	while cond: suite [ \n else : suite ]
 | |
| 
 | |
|     				 * Exceptions *
 | |
| 
 | |
|      raise: raise expr [, expr2]   # Raise exception expr, passing expr2 if any
 | |
|      try...			# Handle exceptions:
 | |
|      try: suite [\n except [cond [, targ]]: suite \n ... \n] [else: suite]
 | |
|      try: suite \n finally: suite	# Specify a 'cleanup' handler
 | |
|    ( two 'try' forms cannot be mixed together)
 | |
| 
 | |
|    				System modules
 | |
| 				==============
 | |
|   @			 	 * Built-ins *
 | |
| 
 | |
|      sys		Interpreter state (see Operating Environment, above)
 | |
|      __builtin__	Access to all built-in python identifiers
 | |
|      __main__		Scope of the interpreters main program, script or stdin
 | |
|      array		Obj efficiently representing arrays of basic values
 | |
|      math		Math functions of C standard
 | |
|      time 		Time-related functions
 | |
|      regex		Regular expression matching operations
 | |
|      marshal		Read and write some python values in binary format
 | |
|      strop		Miscellaneous string operations
 | |
|      struct		Convert between python values and C structs
 | |
| 
 | |
|   @ 				 * Standard *
 | |
| 
 | |
|      getopt		Parse cmd line args in sys.argv.  A la UNIX 'getopt'.
 | |
|      os			Portable interface to OS dependent functionality
 | |
|      pdb		text-oriented debugger
 | |
|      rand		Pseudo-random generator, like C rand()
 | |
|      regsub		Functions useful for working with regular expressions
 | |
|      string		Useful string and characters functions and exceptions
 | |
|      wdb		window-oriented debugger
 | |
|      whrandom		Wichmann-Hill pseudo-random number generator
 | |
| 
 | |
|   @			       * Miscellaneous *
 | |
| 
 | |
|      dis		Python disassembler
 | |
|      glob		Filename globbing (a la unix shell)
 | |
|      grep		File string search
 | |
|      posixpath		Common operations on POSIX pathnames
 | |
|      profile		Python code profiler
 | |
|      repr		`...` repr operator with presentation constraints
 | |
|      string		All of builtin 'strop', plus
 | |
|      tb			Traceback browser and printer
 | |
|      tempfile		Produce a temporary-file name
 | |
|      util		Miscellaneous functions that don't belong elsewhere
 | |
| 
 | |
|   @ 				   * Unix *
 | |
| 
 | |
|      dbm		Dict/file-like interface to Unix ndbm database library
 | |
|      grp		Interface to Unix group database
 | |
|      posix		Standardized UNIX OS functionality - see 'os', above
 | |
|      posixpath		POSIX pathname functions - see 'os', above
 | |
|      pwd		Access to the Unix password database
 | |
|      select		Access to Unix select multiplex file synchronization
 | |
|      socket		Access to BSD socket interface
 | |
|      thread		Low-level primitives for working with process threads
 | |
| 
 | |
|   @ 				* Multimedia *
 | |
| 
 | |
|      audioop		Useful operations on sound fragments
 | |
|      imageop		Useful operations on images
 | |
|      jpeg		Access to jpeg image compressor and decompressor
 | |
|      rgbimg		Access SGI imglib image files
 | |
| 
 | |
|   @ 			 * Cryptographic Extensions *
 | |
| 
 | |
|      md5		Interface to RSA's MD5 message digest algorithm
 | |
|      mpz		Interface to int part of GNU multiple precision library
 | |
|      rotor		Implementation of a rotor-based encryption algorithm
 | |
| 
 | |
|   @ 				  * Stdwin *	Standard Window System
 | |
| 
 | |
|      stdwin		Standard Window System interface
 | |
|      stdwinevents	Stdwin event, command, and selection constants
 | |
|      rect		Rectangle manipulation operations
 | |
| 
 | |
|   @ 				 * SGI IRIX * (4 & 5)
 | |
| 
 | |
|      al		SGI audio facilities
 | |
|      AL		al constants
 | |
|      fl		Interface to FORMS library
 | |
|      FL		fl constants
 | |
|      flp	Functions for form designer
 | |
|      fm		Access to font manager library
 | |
|      gl		Access to graphics library
 | |
|      GL		Constants for gl
 | |
|      DEVICE	More constants for gl
 | |
|      imgfile	Imglib image file interface
 | |
| 
 | |
|   @ 				   * Suns *
 | |
| 
 | |
|      sunaudiodev	Access to sun audio interface
 | |
| 
 | |
|   @ 				  * Contrib *
 | |
| 
 | |
|      syslog
 | |
| 
 | |
|      metalbase
 | |
| 
 | |
|    			       Idioms and hints
 | |
| 			       ================
 | |
| 
 | |
|     Invoke main if running as script:	     if __name__ == '__main__': main()
 | |
| 
 | |
|     General object-type miscellany
 | |
|      What type is someobj; eg, a list:	     if type(someobj) == type([]):
 | |
|      Convert number to hex or octal string:  hex(122)	  => '0x7a'
 | |
|      Convert string to number:		     eval('0x7a') => 122
 | |
| 
 | |
|     Sequence Slice conceptualization:
 | |
|        +---+---+---+---+---+		     Indices point ~between~ chars:
 | |
|        | s | t | u | f | f |		      - first char's left edge = 0,
 | |
|        +---+---+---+---+---+		      - nth char's right edge = n.
 | |
|        0   1   2   3   4   5		     (Note that -0 == 0, so it does
 | |
|       -5  -4  -3  -2  -1		      not count from right.)
 | |
| 
 | |
|     Sequences miscellany:
 | |
|      Create merge of lists:		     map(None, lst1, lst2, ...)
 | |
|      It's faster to list.append(elem) than to list[len(list):] = [elem]
 | |
|      Copy structure of seq a to b:	     b = a[:]
 | |
| 
 | |
|     Comma (tuple vs expression grouping) nuances:
 | |
|      to specify a tuple of one element:	     ('element',)
 | |
|      to specify a tuple containing 1 tuple: (('contained', 'tuple'),)
 | |
|      "TypeError: call of non-function" often means a list missing a comma
 | |
| 
 | |
|     Namespace and object surveillance:
 | |
|      get dictful object keys/key-vals:	     dir(), vars()
 | |
|      Current context globals:		     eval(__name__ + '.__dict__')
 | |
|      Current context locals:		     vars()
 | |
|      Methods supported by X (some objs):     X.__methods__	
 | |
|      X's data attributes (some objs):	     X.__members__	
 | 
