Racchiudere l'invocazione principale di una funzione in un if

5

Come parte della mia classe CS della scuola, sto leggendo Programming Python di John Zelle. Nel libro, Zelle parla di circondare l'invocazione di un metodo principale con

if <condition>:
    main()

dove la condizione è qualcosa come __name__ == '__main__' . Il mio insegnante di informatica ha detto che la necessità di questo ciclo dipende se il programma è importabile ed esegue direttamente. So che poiché ci sono 2 variabili, ci possono essere solo quattro combinazioni di importabili e run-direttamente.

So dal libro e dal mio insegnante di CS che

If a program is importable and is run directly, then main must be conditional.

Tuttavia, non conosco i casi, che è quello che sto cercando di capire:

  1. Se not importable and not run-directly
  2. Se importable and not run-directly
  3. Se not importable and run-directly

Penso, ma non sono sicuro, che queste siano le risposte corrette.

  1. Se not importable and not run-directly , allora deve essere in un condizionale
  2. Se importable and not run-directly , quindi non deve essere in un condizionale.
  3. Se not importable and run-directly , quindi non deve essere in un condizionale.

"Are the statements above correct?" is what I am trying to figure out.

Ho cercato di trovare queste informazioni nel libro, ma purtroppo non è disponibile.

    
posta intboolstring 17.11.2015 - 02:26
fonte

1 risposta

4

Sei molto vicino, ma ti manca un aspetto.

Se un programma è importabile e viene eseguito direttamente, allora main deve essere condizionale.

Se non è importabile e non viene eseguito direttamente, main è irrilevante. In realtà, l'intero contenuto del file è irrilevante.

Se importabile e non eseguito direttamente, allora main non dovrebbe esistere.

Se non è importabile e run-direttamente, allora main non deve essere in un condizionale. È ancora una buona idea, poiché aiuterà a evitare di omettere accidentalmente la necessità, e non provoca danni.

    
risposta data 17.11.2015 - 02:52
fonte

Leggi altre domande sui tag