Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda A Perceber As Funções


davis01

Pergunta

Boas!

Eu estou a ter alguma dificuldade em perceber porque é que algumas funções começam por def exp():, outras somente com def exp(a):, e outras com def exp(a,b,c,d):. Não sei distinguir quando tenho que intrudozir variáveis dentro do def() e quando não tenho que introduzir, pois normalmente todas as funções que vejo tratam variáveis independentemente de as ter ou não no def().

Outra coisa que gostaria que me explicassem é o seguinte:Vamos supor que tenho duas funções (a A e a B). Ambas têm variáveis internas. É possivel, por exemplo, através da função B, ver os valores da função A, e altera-los???

Obrigado por tudo,

Davis01 :huh:

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Eu estou a ter alguma dificuldade em perceber porque é que algumas funções começam por def exp():, outras somente com def exp(a):, e outras com def exp(a,b,c,d):. Não sei distinguir quando tenho que intrudozir variáveis dentro do def() e quando não tenho que introduzir, pois normalmente todas as funções que vejo tratam variáveis independentemente de as ter ou não no def().

O que vai entre parêntesis são os parâmetros passados para a função. Se for criada uma função potenciação é necessário passar para ela dois parâmetros, a base e o expoente:

def potencia(base, expoente):
   
   return base ** expoente

print potencia(2, 2)
print potencia(3, 3)
Outra coisa que gostaria que me explicassem é o seguinte:Vamos supor que tenho duas funções (a A e a B). Ambas têm variáveis internas. É possivel, por exemplo, através da função B, ver os valores da função A, e altera-los???
Sim e não. As variáveis criadas dentro de uma função só são visíveis dentro da função, no chamado escopo da função. Se eu tentar ler uma variável declarada dentro de uma função uma exceção será alçada:
def f():
   a = 1
   return a
   
print 'a =', f()
print 'a =', a
$ python escopo.py
a = 1
a =
Traceback (most recent call last):
  File "escopo.py", line 6, in ?
    print 'a =', a
NameError: name 'a' is not defined
Mas se uma variável for declarada global dentro da função ela pode ser vista e alterada fora da função:
def f():
   global a 
   a = 1
   return a
   
print 'a =', f()
print 'a =', a
$ python escopo2.py
a = 1
a = 1

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...