Rumah > pembangunan bahagian belakang > Tutorial Python > Operator 'adalah' Python: Identiti Objek atau Kesamaan Nilai?

Operator 'adalah' Python: Identiti Objek atau Kesamaan Nilai?

Barbara Streisand
Lepaskan: 2024-12-24 00:14:09
asal
791 orang telah melayarinya

Python's

Nuances of Python's "is" Operator: Object Identity vs. Value Equality

The "is" operator dalam Python telah menjadi sumber kekeliruan bagi banyak pemaju. Walaupun ia kelihatan menipu untuk membandingkan nilai pembolehubah, ia sebenarnya menilai identiti objek. Untuk memahami konsep ini, mari kita mendalami sifat pengendali "adalah".

Identiti Objek lwn. Kesaksamaan Nilai

Dalam Python, pembolehubah mewakili rujukan kepada objek dalam ingatan. Pengendali "adalah" menyemak sama ada dua pembolehubah merujuk kepada objek tepat yang sama, tanpa mengira nilainya. Sebaliknya, pengendali "==" membandingkan nilai objek yang ditunjuk oleh dua pembolehubah.

Pertimbangkan coretan kod berikut:

x = [1, 2, 3]
y = [1, 2, 3]

print(x is y)  # False
Salin selepas log masuk

Dalam contoh ini, "x " dan "y" ialah dua pembolehubah berasingan yang diberikan kepada senarai dengan nilai yang sama. Walau bagaimanapun, pengendali "is" mengembalikan Palsu kerana "x" dan "y" tidak menghala ke objek yang sama dalam ingatan.

Fungsi "id()"

Untuk lebih memahami konsep identiti objek, kita boleh menggunakan fungsi "id()". Fungsi ini mengembalikan pengecam unik objek dalam ingatan. Sebagai contoh, jika kita mencetak pengecam "x" dan "y" menggunakan kod berikut:

print(id(x))
print(id(y))
Salin selepas log masuk

Kami akan melihat bahawa "x" dan "y" mempunyai pengecam yang berbeza, mengesahkan bahawa ia adalah berasingan objek dalam ingatan.

Menetapkan Semula Pembolehubah

Jika kita menetapkan semula "y" kepada "x", kedua-dua pembolehubah kini akan menunjuk ke objek yang sama:

x = [1, 2, 3]
y = [1, 2, 3]
y = x

print(x is y)  # True
Salin selepas log masuk

Dalam kes ini, kedua-dua "x" dan "y" merujuk objek asas yang sama, dan dengan itu pengendali "is" mengembalikan True .

Kesimpulan

Adalah penting untuk mengingati perbezaan antara identiti objek dan kesamaan nilai dalam Python. Operator "is" menilai identiti objek, manakala operator "==" membandingkan nilai objek. Pemahaman ini penting untuk mengelakkan ralat logik apabila bekerja dengan pembolehubah dan objek dalam kod Python.

Atas ialah kandungan terperinci Operator 'adalah' Python: Identiti Objek atau Kesamaan Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan