Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Tugasan Berbilang Python Berbeza daripada Tugasan Berjujukan?

Bagaimanakah Tugasan Berbilang Python Berbeza daripada Tugasan Berjujukan?

DDD
DDDasal
2024-12-05 02:26:09395semak imbas

How Does Python's Multiple Assignment Differ from Sequential Assignment?

Misteri Tugasan Berbilang dalam Python

Dalam Python, tugasan boleh dinilai dengan cara yang mungkin tidak dapat dilihat dengan segera. Satu kes sedemikian ialah berbilang tugasan, di mana dua atau lebih pembolehubah diberikan nilai secara serentak.

Pertimbangkan perkara berikut:

>>> x = 1
>>> y = 2

Sekarang, mari cuba untuk menetapkan kedua-dua nilai sekaligus:

>>> x, y = y, x + y
>>> x
2
>>> y
3

Tanpa diduga, ini menghasilkan hasil yang berbeza berbanding dengan memberikan nilai secara berasingan:

>>> x = 1
>>> y = 2
>>> x = y
>>> y = x + y
>>> x
2
>>> y
4

Penjelasan

Kunci untuk memahami tingkah laku ini terletak pada susunan penilaian dalam pernyataan tugasan. Dalam Python, sebelah kanan tugasan sentiasa dinilai sepenuhnya sebelum tetapan pembolehubah sebenar.

Dalam kes pertama, "x, y = y, x y", sebelah kanan menilai sebagai berikut:

  • y dinilai kepada ham.
  • x y dinilai kepada spam.

Pembolehubah kemudiannya ditetapkan kepada nilai ini: x diberikan ham dan y diberikan spam.

Sebaliknya, dalam kes kedua, "x = y; y = x y", tugasan berlaku secara berurutan: x ditetapkan kepada y, dan kemudian y ditetapkan kepada x y, yang bersamaan dengan y y.

Oleh itu, tugasan berbilang dalam kes pertama berkelakuan berbeza kerana nilai dinilai dan ditetapkan serentak. Jika anda ingin melaksanakan tugasan berasingan, anda harus menggunakan pendekatan berurutan yang kedua.

Atas ialah kandungan terperinci Bagaimanakah Tugasan Berbilang Python Berbeza daripada Tugasan Berjujukan?. 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