Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Tugasan Berbilang dalam Python (x, y = y, x y) Berbeza daripada Tugasan Berasingan (x = y; y = x y)?

Mengapa Tugasan Berbilang dalam Python (x, y = y, x y) Berbeza daripada Tugasan Berasingan (x = y; y = x y)?

Susan Sarandon
Susan Sarandonasal
2024-12-15 17:52:10926semak imbas

Why Does Multiple Assignment in Python (x, y = y, x y) Differ from Separate Assignments (x = y; y = x y)?

Berbilang Tugasan dan Susunan Penilaian dalam Python

Dalam Python, apabila menggunakan berbilang tugasan, seperti x, y = y, x y, ia adalah penting untuk memahami susunan asas bagi penilaian.

Soalan:

Apabila memberikan berbilang nilai sekaligus, mengapa x, y = y, x y menghasilkan nilai yang berbeza daripada memberikannya secara berasingan, iaitu x = y; y = x y?

Jawapan:

Dalam Python, sebelah kanan pernyataan tugasan dinilai sepenuhnya sebelum sebarang tetapan pembolehubah berlaku. Ini menunjukkan bahawa dalam x, y = y, x y, langkah berikut berlaku:

  1. y dinilai dan disimpan sebagai ham.
  2. x y dinilai dan disimpan sebagai spam.
  3. x ditetapkan kepada ham.
  4. y ditetapkan kepada spam.

Secara berkesan, ia bersamaan dengan:

ham = y
spam = x + y
x = ham
y = spam

Sebaliknya, dalam x = y; y = x y, langkahnya ialah:

  1. y ditetapkan kepada x.
  2. x y dinilai sebagai y y dan ditetapkan kepada y.

Hasil ini dalam x ditetapkan kepada nilai asal y, dan y ditetapkan kepada hasil tambah nilai asal x dan y.

Atas ialah kandungan terperinci Mengapa Tugasan Berbilang dalam Python (x, y = y, x y) Berbeza daripada Tugasan Berasingan (x = y; y = x y)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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