The function creates a full copy of the given dictionary.
Dictionary objects are always passed by reference, even if dictionary is passed as an 'in' argument of a function. If value of a variable is a dictionary and it is assigned to other variable then both variables refer to the same internal hash table. This function returns a really independent dictionary object.
This function duplicates the given dictionary but does not duplicate dictionaries that may be stored in key-value pairs.
The function returns a new dictionary object.