Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSystem Design for Python JuniorsModulo 1 · Fondamenti di progettazione del sistemaCode di messaggipredict9 / 105
+100 XP
Compito
📝 **Attività:** Prevedere l'ordine di drenaggio di 5 righe da una coda FIFO con un errore temporaneo che ricoda nuovamente il lavoro non riuscito fino alla fine. 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

from collections import deque

class JobQueue:
    def __init__(self):
        self._q = deque()
    def push(self, job):
        self._q.append(job)
    def pop(self):
        return self._q.popleft() if self._q else None

q = JobQueue()
q.push("send_email:1")           # job 1
q.push("send_email:2")           # job 2
print(q.pop())                   # drain 1 → first-in first-out

q.push("send_email:3")           # job 3
q.push("send_email:4")           # job 4
q.push("send_email:5")           # job 5

# Transient failure on the next pop — retry policy puts it BACK
# on the END of the queue (FIFO order must hold).
failed = q.pop()
q.push(failed)                   # re-enqueued to the tail

# Drain everything remaining.
while True:
    j = q.pop()
    if j is None:
        break
    print(j)

# What does this print? Type your prediction.

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…