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

Bagaimana untuk menyalin objek dalam Python?

WBOY
Lepaskan: 2023-08-25 20:33:15
ke hadapan
1418 orang telah melayarinya

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.
Salin selepas log masuk

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;
Salin selepas log masuk

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
Salin selepas log masuk

Gunakan modul salinan selepas pemasangan −

import copy
Salin selepas log masuk

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)
Salin selepas log masuk

Output

List =  [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]
Salin selepas log masuk

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)
Salin selepas log masuk

Output

List = [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]
Salin selepas log masuk

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

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan