Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyalin objek dalam Python?

Bagaimana untuk menyalin objek dalam Python?

WBOY
WBOYke hadapan
2023-08-25 20:33:151375semak imbas

Bagaimana untuk menyalin objek dalam Python?

Dalam Python, jika anda ingin menyalin objek, pengendali tugasan tidak akan berfungsi. Ia mewujudkan pengikatan antara sasaran dan objek, iaitu ia tidak pernah mencipta objek baharu. Ia hanya mencipta pembolehubah baharu yang berkongsi rujukan objek asal. Untuk menyelesaikan masalah ini, modul replikasi disediakan. Modul ini mempunyai operasi salinan cetek biasa dan salinan dalam.

Salinan cetek

Salinan cetek membina objek komposit baharu dan kemudian memasukkan rujukan ke dalam objek asal. Ia menyalin objek menggunakan

copy.copy(x)
Return a shallow copy of x.

Salinan dalam

Salinan dalam membina objek komposit baharu dan kemudian secara rekursif memasukkan salinan objek dalam objek asal ke dalamnya. Ia menyalin objek menggunakan kaedah berikut

copy.deepcopy(x[, memo])

Return a deep copy of x. Here, memo is a dictionary of objects already copied during the current copying pass;

Masalah berikut mungkin berlaku apabila menggunakan operasi salinan dalam -

  • Rekursi boleh menyebabkan gelung rekursif.

  • Memandangkan salinan dalam menyalin segala-galanya, adalah mungkin untuk menyalin terlalu banyak, seperti data yang anda ingin kongsi antara replika.

Walau bagaimanapun, kaedah deepcopy() mengelakkan masalah ini. Mari lihat bagaimana −

  • Menyimpan kamus memo objek yang disalin semasa proses penyalinan semasa

  • Benarkan kelas yang ditentukan pengguna untuk mengatasi operasi penyalinan atau set komponen yang disalin.

Pasang dan import modul salinan

Untuk memasang modul salinan, gunakan pip −

pip install copy

Gunakan modul salinan selepas pemasangan −

import copy

Salin objek menggunakan salinan cetek

Contoh

Kami akan menggunakan salinan cetek untuk menyalin objek. Ia mencipta objek baharu untuk menyimpan rujukan kepada elemen asal. Mari lihat contoh

import copy

# Create a List
myList = [[5, 10], [15, 20]]

# Display the list
print("List = ", myList)

# Shallow Copy
myList2 = copy.copy(myList)

# Display the copy of the List
print("New copy of the list =", myList2)

Output

List =  [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]

Dalam contoh di atas, kami membuat salinan cetek senarai menggunakan kaedah copy().

Salin objek menggunakan salinan dalam

Contoh

Kami akan menggunakan kaedah deepcopy() untuk menyalin dalam objek. Salinan dalam juga mencipta objek baharu. Mari lihat contoh

import copy

# Create a List
myList = [[5, 10], [15, 20]]

# Display the list
print("List = ", myList)

# Deep Copy
myList2 = copy.deepcopy(myList)

# Display the copy of the List
print("New copy of the list =", myList2)

Output

List = [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]

Atas ialah kandungan terperinci Bagaimana untuk menyalin objek dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam