Tecnicamente, i computer hanno sempre lo stato, anche se si tratta solo dello stato del programma.
Quindi, per determinare stateful / stateless come di solito parliamo, devi avere qualche nozione di interazione, richiesta, o anche una sessione di utilizzo, e l'idea è che il comportamento di una seconda interazione, richiesta, o la sessione non dipende in alcun modo da un'interazione, richiesta o sessione precedenti; quindi è senza stato.
What would be a non web app example of a python application which is stateless vs stateful?
Definiamo che un'interazione con una calcolatrice stia aprendo l'app, calcolando e chiudendo l'app. E se una tale app non ricorda nulla da un'interazione all'altra, allora è senza stato.
Un esempio più semplice sarebbe un calcolatore REPL che non ha memoria. Ogni riga di comando che inserisci produce un risultato, ma non ricorda nulla da un comando all'altro. Pertanto, ogni comando è indipendente e possiamo considerare una serie di comandi come apolidi.
Would a script which scrapes the web and saves the results to disk be considered stateful and one which saves the results to a database stateless?
Direi che devi osservare il comportamento dello script come un programma come segue: lo script fa qualcosa di diverso ogni volta che viene eseguito, in base all'ultima esecuzione? Se è così, è stato, se non è apolide. In altre parole, se lo script guarda la sua ultima esecuzione e decide da dove iniziare in base a quello, allora è stato eseguito da run to run. Se, tuttavia, inizia da zero e si alimenta ogni volta con un set fisso di URL, allora è stateless di run to run.
What about dependencies? Is a script which needs other python libraries installed (dependencies) be considered stateful?
La dipendenza da altre parti di codice può rendere statico un programma senza stato. Tuttavia, le librerie sono spesso scritte come una raccolta di funzioni che ti restituiscono il loro stato da conservare negli oggetti, in modo da avere un certo controllo sul modo in cui si comportano lanciando o trattenendo tali oggetti.