Kod Python 2 yang diberikan cuba mentakrifkan fungsi dengan argumen bersarang, tetapi sintaks ini tidak lagi disokong dalam Python 3.
Ralat yang dihadapi ialah:
SyntaxError: invalid syntax
Isu khusus adalah dalam takrifan fungsi tambah:
def add(self, (sub, pred, obj)):
Dalam Python 2, adalah mungkin untuk menggunakan tupel bersarang sebagai argumen kepada fungsi, dengan fungsi membelah tuple semasa membongkar parameter. Walau bagaimanapun, dalam Python 3, hujah pembongkaran tuple telah dialih keluar.
Untuk menyelesaikan isu ini, anda perlu membongkar tuple secara manual dalam definisi fungsi. Ini boleh dilakukan dengan memberikan secara eksplisit setiap elemen untuk memisahkan pembolehubah:
def add(self, sub_pred_obj): sub, pred, obj = sub_pred_obj
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat Sintaks Argumen Bersarang dalam Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!