Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Antara `==` dan `is` dalam Python?

Apakah Perbezaan Antara `==` dan `is` dalam Python?

Barbara Streisand
Lepaskan: 2024-12-24 22:41:11
asal
636 orang telah melayarinya

What's the Difference Between `==` and `is` in Python?

Memahami Perbezaan Antara "=='' dan "is'' dalam Python

Apabila membandingkan nilai dalam Python, terdapat dua perkara biasa pengendali: "=" dan "adalah." Selalunya, nampaknya pengendali ini melakukan pemeriksaan kesaksamaan yang sama. Walau bagaimanapun, terdapat perbezaan halus antara kedua-duanya dari segi apa yang mereka nilai.

Pengendali "==" dan "is''

  • "==": Ujian untuk kesamaan nilai Ini bermakna ia menilai jika dua pembolehubah merujuk kepada objek yang mengandungi yang sama nilai.
  • "adalah": Ujian untuk identiti objek ini menyemak sama ada dua pembolehubah merujuk kepada objek yang sama dalam ingatan, tanpa mengira nilainya.

Kesamaan Nilai lwn. Identiti Objek

Nilai Kesamaan:

  • Apabila menggunakan "==", Python membandingkan nilai objek yang dirujuk oleh pembolehubah.
  • Jika nilainya sama, hasilnya adalah Benar , tidak kira sama ada objek adalah contoh yang berbeza ingatan.

Contoh:

a = 10
b = 10

if a == b:
    print("Yay!")  # Will print "Yay!" as 10 == 10
Salin selepas log masuk

Identiti Objek:

  • Apabila menggunakan "is," Python membandingkan objek pengecam pembolehubah.
  • Jika pembolehubah merujuk kepada objek yang sama dalam ingatan, hasilnya adalah Benar, walaupun nilainya berbeza.

Contoh:

a = [1, 2, 3]
b = a

if a is b:
    print("Yay!")  # Will print "Yay!" as a and b point to the same list
Salin selepas log masuk

Pengecualian kepada Peraturan

  • Integer : Python cache objek integer kecil (sehingga 256) atas sebab prestasi. Ini bermakna "adalah" boleh mengembalikan Benar walaupun untuk pembolehubah integer yang berbeza dalam julat ini:
a = 100
b = 100

if a is b:
    print("Yay!")  # Will print "Yay!" due to integer caching
Salin selepas log masuk
  • String: Begitu juga, Python menyimpan literal rentetan biasa. Walau bagaimanapun, ambil perhatian bahawa ini tidak terpakai pada rentetan yang dibuat daripada pembolehubah:
a = "a"
b = "a"

if a is b:
    print("Yay!")  # Will print "Yay!" as string literals are cached

b = "aa"

if a is b:
    print("Nay!")  # Will not print as b is a different object
Salin selepas log masuk

Ringkasnya, "==" menguji kesamaan nilai, manakala "is" menguji identiti objek. Memahami perbezaan ini adalah penting untuk menulis kod Python yang betul dan cekap.

Atas ialah kandungan terperinci Apakah Perbezaan Antara `==` dan `is` dalam Python?. 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