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