mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
	
	
		
			111 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			111 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								New features of classes
							 | 
						||
| 
								 | 
							
								=======================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A class can implement certain operations that are invoked by special
							 | 
						||
| 
								 | 
							
								syntax (such as subscription or arithmetic operations) by defining
							 | 
						||
| 
								 | 
							
								methods with special names.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Special methods for any type
							 | 
						||
| 
								 | 
							
								----------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__repr__(self) --> string
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used by the print statement and conversions (reverse quotes) to
							 | 
						||
| 
								 | 
							
								compute the string representation of an object.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__cmp__(self, other) --> int
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used by all comparison operations.  Should return -1 if self<other, 0
							 | 
						||
| 
								 | 
							
								if self==other, +1 if self>other.  Due to limitations in the
							 | 
						||
| 
								 | 
							
								interpreter, exceptions raised by comparisons are ignored, and the
							 | 
						||
| 
								 | 
							
								objects will be considered equal in this case.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Special methods for sequence and mapping types
							 | 
						||
| 
								 | 
							
								----------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__len__(self) --> int
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used by the built-in function len().  Should return the length of the
							 | 
						||
| 
								 | 
							
								object, which should be >= 0.  Also, an object whose __len__() method
							 | 
						||
| 
								 | 
							
								returns 0 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__getitem__(self, key) --> value
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement value = self[key].  Note that the special
							 | 
						||
| 
								 | 
							
								interpretation of negative keys (if the class wishes to emulate a
							 | 
						||
| 
								 | 
							
								sequence type) is up to the __getitem__ method.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__setitem__(self, key, value)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement self[key] = value.  Same note as for __getitem__.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__delitem__(self, key)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement del self[key].  Same note as for __getitem__.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Special methods for sequence types
							 | 
						||
| 
								 | 
							
								----------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__getslice__(self, i, j) --> sequence
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement self[i:j].  Note that missing i or j are replaced by
							 | 
						||
| 
								 | 
							
								0 or len(self), respectively, and len(self) has been added to negative
							 | 
						||
| 
								 | 
							
								i or j.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__setslice__(self, i, j, sequence)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement self[i:j] = value.  Same note as for __getslice__.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__delslice__(self, i, j)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement del self[i:j].  Same note as for __getslice__.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Special methods for numeric types
							 | 
						||
| 
								 | 
							
								---------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__add__, __sub__, __mul__, __div__, __mod__, __divmod__, __pow__,
							 | 
						||
| 
								 | 
							
								__lshift__, __rshift__, __and__, __xor__, __or__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement the binary arithmetic operations (divmod and pow are
							 | 
						||
| 
								 | 
							
								called by built-in functions).  All have the call pattern
							 | 
						||
| 
								 | 
							
								func(self, other) --> number.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__neg__, __pos__, __abs__, __invert__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement the unary arithmetic operations (-, +, abs and ~).
							 | 
						||
| 
								 | 
							
								All have the call pattern func(self) --> number.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__nonzero__(self) --> int
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement boolean testing.  An alternative name for this
							 | 
						||
| 
								 | 
							
								method is __len__.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__coerce__(self, other) --> (self1, other1) or None
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement "mixed-mode" numeric arithmetic.  Either return a
							 | 
						||
| 
								 | 
							
								tuple containing self and other converted to some common type, or None
							 | 
						||
| 
								 | 
							
								if no way of conversion is known.  When the common type would be the
							 | 
						||
| 
								 | 
							
								type of other, it is sufficient to return None, since the interpreter
							 | 
						||
| 
								 | 
							
								will also ask the other object to attempt a coercion (but sometimes,
							 | 
						||
| 
								 | 
							
								if the implementation of the other type cannot be changed, it is
							 | 
						||
| 
								 | 
							
								useful to do the conversion to the other type here).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__int__(self) --> int
							 | 
						||
| 
								 | 
							
								__long__(self) --> long
							 | 
						||
| 
								 | 
							
								__float__(self) --> float
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Used to implement the built-in functions int(), long() and float().
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Notes
							 | 
						||
| 
								 | 
							
								-----
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Except for __repr__ and __cmp__, when no appropriate method is
							 | 
						||
| 
								 | 
							
								defined, attempts to execute the operation raise an exception.  For
							 | 
						||
| 
								 | 
							
								__repr__ and __cmp__, the traditional interpretations are used
							 | 
						||
| 
								 | 
							
								in this case.
							 |