I\'m very comfortable with .NET objects and its framework for reference vs value types. How do python objects compare to .NET objects? Specifically, I\'m wondering about equalit
__cmp__ or __eq__ method defined object. This means that doing a > b is equivalent to doing id(a) > id(b).
The is keyword is also used to see if two variables point to the same object. The == operator on the other hand, calls the __cmp__ or __eq__ method of the object it is comparing.
__hash__ method defined for it. All of the basic data types (including strings and tuples) have hash functions defined for them. If there is no __hash__ method defined for a class, that class will inherit it's hash from the object object.
copy, copy.deepcopy, and their respective in class methods __copy__ and __deepcopy__. Use copy to copy a single object, deepcopy to copy a heirarchy of objects. deepcopy
Edits made at the suggestion of agf.
In python you can define the __eq__ method to handle the == operator.
The is operator checks if one object is the same as the other. (or more specifically two variables that reference one or two objects)
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a == b
True
>>> a is b
False
>>> c = a
>>> c is a
True
Now, this example uses the list type, which you can think of as a class which defines an __eq__ method that compares equality of all its items.
Same for hash, you define a __hash__ method in your class that returns an integer that would identify your object. This is also available in the basic types that support hashing. See the hash function.