Home >Backend Development >Python Tutorial >How Does Python's Object Assignment Work, and How Can I Create Independent Copies?
In Python, assignment operators, such as =, do not create copies of objects. Instead, they refer to existing objects in memory. This behavior can lead to unintended consequences, as demonstrated in the following code:
dict_a = dict_b = dict_c = {} dict_c['hello'] = 'goodbye' print(dict_a) print(dict_b) print(dict_c)
Expected Output:
{} {} {'hello': 'goodbye'}
Actual Output:
{'hello': 'goodbye'} {'hello': 'goodbye'} {'hello': 'goodbye'}
In this example, we expected to create three independent dictionaries. However, the result shows that dict_a, dict_b, and dict_c all refer to the same dictionary object. Assigning a key to dict_c modifies the shared dictionary, which is reflected in all three variables.
To achieve the desired behavior of creating independent copies, Python provides several options:
dict_a = {1: 2} dict_b = dict_a.copy() dict_b[3] = 4 print(dict_a) print(dict_b)
Output:
{1: 2} {1: 2, 3: 4}
import copy dict_a = {1: 2, 'nested': {3: 4}} dict_b = copy.deepcopy(dict_a) dict_b['nested'][5] = 6 print(dict_a) print(dict_b)
Output:
{1: 2, 'nested': {3: 4}} {1: 2, 'nested': {3: 4, 5: 6}}
By using these methods, it is possible to control object assignment in Python and prevent unintended modifications to shared objects.
The above is the detailed content of How Does Python's Object Assignment Work, and How Can I Create Independent Copies?. For more information, please follow other related articles on the PHP Chinese website!