CodeGym /Cursos /Python SELF PT /Parâmetros da função

Parâmetros da função

Python SELF PT
Nível 6 , Lição 3
Disponível

9.1 Parâmetros vs argumentos

Os iniciantes frequentemente se confundem entre os termos "parâmetros" e "argumentos", mas a diferença é importante para compreender a programação funcional.

Parâmetros são variáveis que são listadas na definição da função. Eles são os nomes que a função usa para se referir aos valores passados a ela. Os parâmetros da função servem como "placeholders" para os valores que serão utilizados no corpo da função. Quando você define uma função, você descreve seus parâmetros.


def print_info(name, age):  # name e age — são parâmetros
    print(f"Name: {name}, Age: {age}")        

Argumentos são valores ou dados específicos passados para a função quando ela é chamada. Os argumentos são substituídos nos lugares dos parâmetros na execução da função. Argumentos podem ser constantes, variáveis, expressões ou até mesmo resultados de outras funções.


print_info("Alice", 30)  # "Alice" e 30 — são argumentos 

Tipos de argumentos

  1. Argumentos posicionais: os valores são passados na ordem em que os parâmetros são definidos.
  2. Argumentos nomeados: argumentos passados para a função usando o nome do parâmetro, o que permite que eles sejam listados em qualquer ordem após os argumentos posicionais.
  3. Argumentos padrão: ao definir uma função os parâmetros podem ter valores padrão atribuídos a eles.

Você já está usando argumentos posicionais, e vamos falar sobre argumentos nomeados e argumentos padrão em aulas futuras.

A diferença entre parâmetros e argumentos em Python ajuda a entender como as funções recebem e processam dados. Essa distinção é importante para criar funções flexíveis que podem ser facilmente adaptadas a diferentes condições de chamada, tornando seu código mais modular e reutilizável.

9.2 Valores padrão

Argumentos padrão em Python são um mecanismo que permite que funções especifiquem valores predeterminados para um ou mais parâmetros. Essa capacidade torna a chamada de função mais conveniente e flexível, pois não exige que todos os argumentos sejam explicitamente indicados toda vez que a função é chamada.

Definindo argumentos padrão

Argumentos padrão são definidos na definição da função, onde na declaração do parâmetro é indicado o valor que será utilizado, se ao chamar a função o argumento não for passado:


def print_info(name, company='Unknown'):
    print(f"Name: {name}, Company: {company}")

Neste exemplo, company tem um valor padrão de 'Unknown'.

  • Simplificação da chamada de função: Funções com muitos parâmetros podem ser chamadas especificando apenas os argumentos mais importantes.
  • Flexibilidade: Funções podem ser adaptadas a diferentes cenários de uso sem alterar seu código.
  • Legibilidade do código: A especificação explícita de valores padrão torna o código autodescritivo.

Notas importantes

Imutabilidade: Valores padrão para argumentos devem ser de tipos de dados imutáveis, como números, strings ou tuplas. Usar tipos mutáveis (como listas ou dicionários) pode levar a efeitos colaterais indesejados, pois as mudanças nesses objetos são mantidas entre as chamadas da função.

Ordem dos argumentos: Os parâmetros com argumentos padrão devem seguir depois dos parâmetros sem argumentos padrão na definição da função.

Outro exemplo:


def create_user(username, is_admin=False):
    if is_admin:
        print(f"User {username} is an admin.")
    else:
        print(f"User {username} is a regular user.")
        
create_user("Alice")  # is_admin == False
create_user("Bob", is_admin=True)  # is_admin == True
create_user("Karl", True)  # is_admin == True

Acima estão 3 maneiras de chamar uma função com um argumento padrão: todas elas funcionam.

9.3 Passagem de parâmetros por nome

Passar parâmetros para uma função por nome permite indicar mais claramente quais valores são passados para quais argumentos, melhorando a legibilidade do código e reduzindo a probabilidade de erros associados ao ordenamento incorreto dos argumentos.

Para passar o valor de um parâmetro por nome, você deve, na chamada da função, atribuir um valor a um parâmetro específico:


função(parâmetro1 = valor, parâmetro2 = valor)

Esse método é especialmente útil ao trabalhar com funções que têm muitos parâmetros ou parâmetros com valores padrão.

Vantagens da passagem de parâmetros por nome

  • Clareza e legibilidade: Especificar o nome do parâmetro ao chamá-lo torna o código mais fácil de ser entendido por outros desenvolvedores ou quando você retorna ao seu próprio código antigo.
  • Flexibilidade: Os parâmetros podem ser passados em qualquer ordem, o que é conveniente quando a função tem muitos parâmetros.
  • Evitando erros: Não há necessidade de lembrar a ordem dos parâmetros da função, o que reduz a probabilidade de erros relacionados à transmissão incorreta de valores.

Exemplos de uso


def create_profile(name, age, job):
    print(f"Name: {name}")
    print(f"Age: {age}")
    print(f"Job: {job}")
        
create_profile(name = "John", age = 28, job = "Developer")

Neste exemplo, os parâmetros não são passados na ordem, mas cada um deles é explicitamente atribuído a um valor, o que torna a chamada da função mais flexível e compreensível.

Exemplo 2:

Aliás, você já se deparou com a passagem de parâmetros por nome antes. Na função print(), lembra?

Características e limitações

Os parâmetros passados por nome devem seguir depois dos parâmetros sem nome, quando existirem na definição da função.

Não é permitido usar o mesmo nome de parâmetro mais de uma vez ao chamar a função.

A passagem de parâmetros por nome é uma capacidade poderosa do Python, que torna o código mais seguro e compreensível, especialmente em casos de uso de funções com muitos argumentos ou valores opcionais.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION