Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pertukaran Tuple Berfungsi Secara Dalaman dalam Python?
Bagaimanakah Pertukaran Ahli dalam Tuples (a, b) = (b, a) Berfungsi Secara Dalaman?
Pertukaran ahli dalam tupel dilakukan melalui satu siri operasi tindanan tanpa menggunakan pembolehubah sementara. Python memisahkan ungkapan sebelah kanan daripada tugasan sebelah kiri.
Untuk tupel dengan 2 atau 3 item:
Sebelah kanan dinilai, menolak [a, b] ke atas timbunan. Opkod ROT_TWO menukar dua kedudukan teratas, menghasilkan [b, a] di bahagian atas. Opcode STORE_FAST kemudian menyimpan nilai ini dalam pembolehubah sebelah kiri tanpa pembolehubah temp.
Untuk tupel dengan 4 atau lebih item:
Tuple eksplisit dibina daripada ungkapan sebelah kanan. Opcode UNPACK_SEQUENCE memunculkan tupel dari tindanan dan menolak elemennya kembali ke tindanan dalam susunan terbalik. Operasi STORE_FAST yang berikutnya menyimpan nilai ini dalam pembolehubah sebelah kiri.
Pengoptimuman untuk Tugasan 2 dan 3 nama:
Pengoptimuman lubang intip menggantikan BUILD_TUPLE/UNPACK yang tidak cekap gabungan dengan lebih pantas ROT_TWO/ROT_THREE opcode untuk tugasan 2 dan 3 nama.
Atas ialah kandungan terperinci Bagaimanakah Pertukaran Tuple Berfungsi Secara Dalaman dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!