Fechando a invocação principal de uma função em um if

5

Como parte da classe CS da minha escola, estou lendo Python Programming de John Zelle. No livro, Zelle fala sobre cercar a invocação de um método principal com

if <condition>:
    main()

em que a condição é algo como __name__ == '__main__' . Meu professor de ciências da computação disse que a necessidade desse loop depende se o programa é importável e executado diretamente. Eu sei que, porque existem duas variáveis, só pode haver quatro combinações de importação e execução diretamente.

Eu sei do livro e meu professor de CS que

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

No entanto, não conheço os casos, que é o que estou tentando descobrir:

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

Eu acho, mas não tenho certeza, que essas são as respostas corretas.

  1. Se not importable and not run-directly , então ele deve estar em um condicional
  2. Se importable and not run-directly , então não precisa estar em uma condição.
  3. Se not importable and run-directly , então não precisa estar em uma condição.

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

Eu tentei encontrar essa informação no livro, mas infelizmente não está disponível.

    
por intboolstring 17.11.2015 / 02:26
fonte

1 resposta

4

Você está muito perto, mas falta um aspecto.

Se um programa é importável e é executado diretamente, então o principal deve ser condicional.

Se não for importável e não for executado diretamente, o principal será irrelevante. Na verdade, todo o conteúdo do arquivo é irrelevante.

Se for importável e não executar diretamente, o principal não deve existir.

Se não for importável e executado diretamente, o principal não precisa estar em uma condição. Ainda é uma boa ideia, pois ajudará a evitar a omissão acidental, e não causa nenhum dano.

    
por 17.11.2015 / 02:52
fonte