Прескочи на главни садржај
🔒 Режим прегледа. Првих петнаест Foundations лекција је бесплатно; ова је Pro. Покрените 7-дневни trial да откључате едитор, AI савете и остатак курса. Картица је обавезна, можете отказати у било ком тренутку у Dashboard.Покрени 7-дневни trial →
← KurseviSenior Deep-DivesМодул 1 · Конкуренција и асинхронизовани интерни елементиБројање меморије и референциpredict7 / 161
+100 XP
Zadatak
📝 **Задатак:** Предвидите траг повратног бројања од 4 реда. Сваки отисак се покреће након догађаја везивања — бинд, дел, аппенд-то-лист, а затим испусти целу листу. 📋 Имплементирајте горњу функцију. Тестови се покрећу аутоматски. 💡 **Савет:** Поново прочитајте теорију ако запнете.
Predvidi izlaz

Pažljivo pročitaj kod

# 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.

Šta će program ispisati? Napiši ovde:

💬 Diskusija

Budi prvi — postavi pitanje ili podeli savet.
Prijavi se da bi se pridružio diskusiji. Čitanje je besplatno.
Učitavanje diskusije…