Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya mengendalikan hujah bersarang dalam Python 3 selepas penyingkiran tuple membongkar?
Python 3 memperkenalkan perubahan ketara pada sintaks dan gelagat argumen bersarang. Dalam Python 2, argumen bersarang boleh ditakrifkan menggunakan pembongkaran tuple dalam definisi fungsi dan ungkapan lambda. Walau bagaimanapun, ciri ini telah dialih keluar dalam Python 3 kerana kebimbangan tentang kekeliruan dan kerumitan.
Apabila cuba menyusun kod Python 2 yang menggunakan argumen bersarang ke dalam modul Python 3 , ralat seperti yang dinyatakan dalam konteks yang disediakan mungkin berlaku. Untuk berjaya mengalihkan kod ke Python 3, garis panduan berikut harus dipatuhi:
Definisi Fungsi:
Ganti sintaks pembongkaran tuple dengan parameter tunggal dan buka bungkus tuple secara manual dalam badan fungsi:
<code class="python">def add(self, sub_pred_obj): sub, pred, obj = sub_pred_obj # Remaining function body</code>
Ungkapan Lambda:
Elakkan tuple membongkar dan gunakan pengindeksan untuk mengakses elemen individu dalam lambda:
<code class="python">lambda xy: (xy[1], xy[0])</code>
Menggunakan Alat Penukaran:
Untuk fungsi yang kompleks, alatan penukaran seperti 2to3, modenisasi atau futurise boleh mengenal pasti dan mencadangkan perubahan ini secara automatik.
PEP 3113 menerangkan alasan di sebalik pengalihan keluar parameter tuple. Ia menyatakan kebimbangan bahawa ia boleh mengelirukan dan membawa kepada kesukaran pelaksanaan dalam banyak konteks, seperti dengan penutupan, penyahpepijatan dan ciri bahasa lain.
Sementara pembongkaran parameter tuple tidak lagi disokong secara langsung dalam Python 3, terdapat penyelesaian alternatif untuk mencapai kefungsian yang serupa:
Atas ialah kandungan terperinci Bagaimanakah saya mengendalikan hujah bersarang dalam Python 3 selepas penyingkiran tuple membongkar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!