Eu havia entendido que o import fazia parte daquela função, e que se o programa executar a def com o import fora o import não seria executado. Queria saber porque o import fica fora do def, ele sempre é executado mesmo estando fora da def?
Eu havia entendido que o import fazia parte daquela função, e que se o programa executar a def com o import fora o import não seria executado. Queria saber porque o import fica fora do def, ele sempre é executado mesmo estando fora da def?
com import você tá importando um código (ou pedaço dele) para usar no código atual.
ao usar o import do lado de fora, tudo que for importado vai poder ser usado em qualquer lugar.
import math
def raiz_quadrada(x):
return math.sqrt(x)
print("caso 1.1", raiz_quadrada(16)) # funciona
print("caso 1.2", math.sqrt(16)) # funciona
e se ele for usado dentro de uma def, o que você importou só vai poder ser usado dentro daquela def
def raiz_quadrada(x):
import math
return math.sqrt(x)
print("caso 2.1", raiz_quadrada(16)) # funciona
print("caso 2.2", math.sqrt(16)) # não funciona, pois math só pode ser usado dentro de def
isso se chama escopo, assim como as variáveis que são criadas dentro de uma def só podem ser usadas dentro de uma def (isso se chama escopo local, a variável só vive ali dentro da def)
e variáveis criadas fora de uma def podem ser usadas dentro de uma def, pois possuem o escopo GLOBAL, que significa que pode ser usada em qualquer lugar, contudo se você alterar uma variável global dentro de uma def, o valor alterado não será espelhado para fora, a menos que você defina dentro da def que pretende usar uma variável global
se quiser saber mais de escopo acessa o link: https://www.phylos.net/2021-06-01/python-escopos-e-namespaces/ e pesquise mais no google/YouTube
Valeu pela explicação Dj!