Naar hoofdinhoud
πŸ”’ Voorbeeldmodus. De eerste vijftien Foundations-lessen zijn gratis; deze is Pro. Start een 7-daagse trial om de editor, AI-hints en de rest van het curriculum te ontgrendelen. Kaart vereist, op elk moment opzegbaar in Dashboard.Start 7-daagse trial β†’
⚑
← Cursussenβ€ΊSenior Deep-DivesModule 1 Β· Gelijktijdigheid en asynchrone interne processenβ€ΊGeheugen- en referentietellingpredict7 / 161
+100 XP
Opdracht🌐 shown in EN
πŸ“ **Task:** Predict the 4-line refcount trace. Each print fires after a binding event β€” bind, del, append-to-list, then drop the whole list. πŸ“‹ Implement the function above. Tests run automatically. πŸ’‘ **Hint:** Re-read the theory if you get stuck.
Voorspel uitvoer

Lees de code zorgvuldig

# Deterministic refcount tracker β€” mirrors CPython behaviour but
# without sys.getrefcount's baseline-by-1 quirk. Every Python
# binding increments; every del / list-removal decrements.

class Refcount:
    def __init__(self, name):
        self.name = name
        self.count = 1   # the original binding

    def bind(self):          # `y = x`
        self.count += 1
    def unbind(self):        # `del y`
        self.count -= 1
    def append_to(self, container_name):
        self.count += 1
    def container_dropped(self, n):
        self.count -= n

obj = Refcount("payload")    # 1 β€” the original assignment
y = obj; obj.bind()          # rebind β†’ 2
print(obj.count)

obj.unbind()                 # del y β†’ 1
print(obj.count)

big_list = ["item"]
big_list.append(obj); obj.append_to("big_list")   # +1 β†’ 2
big_list.append(obj); obj.append_to("big_list")   # +1 β†’ 3
print(obj.count)

obj.container_dropped(2)     # del big_list β€” list had 2 refs to obj
print(obj.count)

# What does this print? Type your prediction.

Wat zal het programma uitprinten? Schrijf hier: