| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{UserDict} --- | 
					
						
							| 
									
										
										
										
											1999-06-29 18:13:37 +00:00
										 |  |  |          Class wrapper for dictionary objects} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-06-29 18:13:37 +00:00
										 |  |  | \declaremodule{standard}{UserDict} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \modulesynopsis{Class wrapper for dictionary objects.} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-07 20:05:33 +00:00
										 |  |  | This module defines a class that acts as a wrapper around | 
					
						
							|  |  |  | dictionary objects.  It is a useful base class for | 
					
						
							|  |  |  | your own dictionary-like classes, which can inherit from | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | them and override existing methods or add new ones.  In this way one | 
					
						
							| 
									
										
										
										
											1998-04-07 20:05:33 +00:00
										 |  |  | can add new behaviours to dictionaries. | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-19 06:26:35 +00:00
										 |  |  | The \module{UserDict} module defines the \class{UserDict} class: | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-07-26 15:45:52 +00:00
										 |  |  | \begin{classdesc}{UserDict}{\optional{intialdata}} | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | Return a class instance that simulates a dictionary.  The instance's | 
					
						
							|  |  |  | contents are kept in a regular dictionary, which is accessible via the | 
					
						
							| 
									
										
										
										
											1999-07-26 15:45:52 +00:00
										 |  |  | \member{data} attribute of \class{UserDict} instances.  If | 
					
						
							|  |  |  | \var{initialdata} is provided, \member{data} is initialized with its | 
					
						
							|  |  |  | contents; note that a reference to \var{initialdata} will not be kept,  | 
					
						
							|  |  |  | allowing it be used used for other purposes. | 
					
						
							| 
									
										
										
										
											1998-02-19 06:26:35 +00:00
										 |  |  | \end{classdesc} | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-06-29 18:13:37 +00:00
										 |  |  | In addition to supporting the methods and operations of mappings (see | 
					
						
							|  |  |  | section \ref{typesmapping}), \class{UserDict} instances provide the | 
					
						
							|  |  |  | following attribute: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-07 20:05:33 +00:00
										 |  |  | \begin{memberdesc}{data} | 
					
						
							|  |  |  | A real dictionary used to store the contents of the \class{UserDict} | 
					
						
							|  |  |  | class. | 
					
						
							|  |  |  | \end{memberdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{UserList} --- | 
					
						
							| 
									
										
										
										
											1999-06-29 18:13:37 +00:00
										 |  |  |          Class wrapper for list objects} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-06-29 18:13:37 +00:00
										 |  |  | \declaremodule{standard}{UserList} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \modulesynopsis{Class wrapper for list objects.} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-07 20:05:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | This module defines a class that acts as a wrapper around | 
					
						
							|  |  |  | list objects.  It is a useful base class for | 
					
						
							|  |  |  | your own list-like classes, which can inherit from | 
					
						
							|  |  |  | them and override existing methods or add new ones.  In this way one | 
					
						
							|  |  |  | can add new behaviours to lists. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-19 06:26:35 +00:00
										 |  |  | The \module{UserList} module defines the \class{UserList} class: | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-19 06:26:35 +00:00
										 |  |  | \begin{classdesc}{UserList}{\optional{list}} | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | Return a class instance that simulates a list.  The instance's | 
					
						
							|  |  |  | contents are kept in a regular list, which is accessible via the | 
					
						
							| 
									
										
										
										
											1998-02-19 06:26:35 +00:00
										 |  |  | \member{data} attribute of \class{UserList} instances.  The instance's | 
					
						
							| 
									
										
										
										
											1998-01-07 22:05:25 +00:00
										 |  |  | contents are initially set to a copy of \var{list}, defaulting to the | 
					
						
							| 
									
										
										
										
											1997-03-27 14:56:18 +00:00
										 |  |  | empty list \code{[]}.  \var{list} can be either a regular Python list, | 
					
						
							| 
									
										
										
										
											1998-02-19 06:26:35 +00:00
										 |  |  | or an instance of \class{UserList} (or a subclass). | 
					
						
							|  |  |  | \end{classdesc} | 
					
						
							| 
									
										
										
										
											1998-04-07 20:05:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-06-29 18:13:37 +00:00
										 |  |  | In addition to supporting the methods and operations of mutable | 
					
						
							|  |  |  | sequences (see section \ref{typesseq}), \class{UserList} instances | 
					
						
							|  |  |  | provide the following attribute: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-07 20:05:33 +00:00
										 |  |  | \begin{memberdesc}{data} | 
					
						
							|  |  |  | A real Python list object used to store the contents of the | 
					
						
							|  |  |  | \class{UserList} class. | 
					
						
							|  |  |  | \end{memberdesc} | 
					
						
							| 
									
										
										
										
											2000-04-03 03:51:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \section{\module{UserString} --- | 
					
						
							|  |  |  |          Class wrapper for string objects} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \declaremodule{standard}{UserString} | 
					
						
							|  |  |  | \modulesynopsis{Class wrapper for string objects.} | 
					
						
							|  |  |  | \moduleauthor{Peter Funk}{pf@artcom-gmbh.de} | 
					
						
							|  |  |  | \sectionauthor{Peter Funk}{pf@artcom-gmbh.de} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This module defines a class that acts as a wrapper around | 
					
						
							|  |  |  | string objects.  It is a useful base class for | 
					
						
							|  |  |  | your own string-like classes, which can inherit from | 
					
						
							|  |  |  | them and override existing methods or add new ones.  In this way one | 
					
						
							|  |  |  | can add new behaviours to strings. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The \module{UserString} module defines the \class{UserString} class: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{classdesc}{UserString}{\optional{sequence}} | 
					
						
							|  |  |  | Return a class instance that simulates a string or an unicode string object. | 
					
						
							|  |  |  | The instance's content is kept in a regular string or unicode string | 
					
						
							|  |  |  | object, which is accessible via the | 
					
						
							|  |  |  | \member{data} attribute of \class{UserString} instances.  The instance's | 
					
						
							|  |  |  | contents are initially set to a copy of \var{sequence}. | 
					
						
							|  |  |  | \var{sequence} can be either a regular Python string or unicode string, | 
					
						
							|  |  |  | an instance of \class{UserString} (or a subclass) or an arbitrary sequence | 
					
						
							|  |  |  | which can be converted into a string. | 
					
						
							|  |  |  | supporting. | 
					
						
							|  |  |  | \end{classdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In addition to supporting the methods and operations of string  or | 
					
						
							|  |  |  | unicode objects (see section \ref{typesseq}), \class{UserString} instances | 
					
						
							|  |  |  | provide the following attribute: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{memberdesc}{data} | 
					
						
							|  |  |  | A real Python string or unicode object used to store the content of the | 
					
						
							|  |  |  | \class{UserString} class. | 
					
						
							|  |  |  | \end{memberdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{classdesc}{MutableString}{\optional{sequence}} | 
					
						
							|  |  |  | This class is derived from the \class{UserString} above and redefines | 
					
						
							|  |  |  | strings to be \emph{mutable}.  Mutable strings can't be used as | 
					
						
							|  |  |  | dictionary keys, because dictionaries require \emph{immutable} objects as | 
					
						
							|  |  |  | keys.  The main intention of this class is to serve as an educational | 
					
						
							|  |  |  | example for inheritance and necessity to remove (override) the | 
					
						
							|  |  |  | \function{__hash__} method in order to trap attempts to use a | 
					
						
							|  |  |  | mutable object as dictionary key, which would be otherwise very | 
					
						
							|  |  |  | errorprone and hard to track down. | 
					
						
							|  |  |  | \end{classdesc} |