Μετάβαση στο κύριο περιεχόμενο
🔒 Λειτουργία προεπισκόπησης. Τα πρώτα δεκαπέντε μαθήματα Foundations είναι δωρεάν· αυτό είναι Pro. Ξεκινήστε ένα 7ήμερο trial για να ξεκλειδώσετε τον επεξεργαστή, τις υποδείξεις AI και το υπόλοιπο του προγράμματος. Απαιτείται κάρτα, ακυρώνετε οποιαδήποτε στιγμή από το Dashboard.Ξεκινήστε 7ήμερο trial →
← ΜαθήματαSenior Deep-DivesΕνότητα 5 · Αναθεώρηση Αρχιτεκτονικής & ΚώδικαΑδύναμες αναφορές και οριστικοποιητέςpredict70 / 161
+125 XP
Εργασία
📝 **Ερώτηση:** Προβλέψτε την ακριβή έξοδο. Δύο περιπτώσεις \`Σύνδεση\` έχουν η καθεμία μια επιστροφή κλήσης \`weakref.finalize\` που προσαρτά το \`"closed:<name>"\` σε ένα αρχείο καταγραφής όταν το αντικείμενο είναι GC'd. Το πρόγραμμα οδήγησης: (1) ελέγχει το μήκος καταγραφής, (2) διαγράφει το c1 + αναγκάζει το GC, (3) διαγράφει το c2 + αναγκάζει το GC. Πότε ενεργοποιούνται οι επανακλήσεις και με ποια σειρά; 📋 Επιλέξτε τη σωστή απάντηση. 💡 **Υπόδειξη: ** Ξαναδιαβάστε την παραπάνω θεωρία εάν δεν είστε σίγουροι.
Πρόβλεψε έξοδο

Διάβασε τον κώδικα προσεκτικά

import weakref
import gc

log = []


class Connection:
    def __init__(self, name):
        self.name = name


def cleanup(name):
    log.append(f"closed:{name}")


c1 = Connection("a")
c2 = Connection("b")
weakref.finalize(c1, cleanup, c1.name)
weakref.finalize(c2, cleanup, c2.name)

print(f"alive:{len(log)}")
del c1
gc.collect()
print(f"after_c1:{log}")
del c2
gc.collect()
print(f"after_c2:{log}")

Τι θα εμφανίσει το πρόγραμμα; Γράψε εδώ:

💬 Συζήτηση

Γίνε ο πρώτος — κάνε μια ερώτηση ή μοιράσου μια συμβουλή.
Σύνδεση για να συμμετάσχεις στη συζήτηση. Η ανάγνωση είναι δωρεάν.
Φόρτωση συζήτησης…