mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
	
	
		
			542 lines
		
	
	
	
		
			22 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			542 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__	 |