Parâmetros de Função - Python
Uma função pode receber parâmetros. Através desses parâmetros, podemos passar dados para a função. Um exemplo simples é a função print()
Agora, vamos definir e utilizar uma função com parâmetros:
def say_hello(name):
print(f"Hello, {name}")
say_hello("Tom")
say_hello("Bob")
say_hello("Alice")
A função say_hello
name
print
say_hello
Hello, Tom Hello, Bob Hello, Alice
Os valores são passados aos parâmetros com base na posição. Vamos ver um exemplo de uma função com vários parâmetros:
def print_person(name, age):
print(f"Name: {name}")
print(f"Age: {age}")
print_person("Tom", 37)
Aqui, a função print_person
name
age
print_person("Tom", 37)
O primeiro valor, "Tom", é atribuído ao parâmetro name
age
Name: Tom
Age: 37
Valores Padrão
Podemos tornar alguns parâmetros opcionais, atribuindo-lhes valores padrão. Por exemplo:
def say_hello(name="Tom"):
print(f"Hello, {name}")
say_hello() # Aqui o parâmetro name será "Tom"
say_hello("Bob") # Aqui name será "Bob"
Nesse caso, o parâmetro name
Hello, Tom Hello, Bob
Se uma função tiver múltiplos parâmetros, os opcionais devem vir após os obrigatórios. Veja:
def print_person(name, age=18):
print(f"Name: {name} Age: {age}")
print_person("Bob")
print_person("Tom", 37)
Aqui, o parâmetro age
name
Name: Bob Age: 18 Name: Tom Age: 37
Também podemos tornar todos os parâmetros opcionais:
def print_person(name="Tom", age=18):
print(f"Name: {name} Age: {age}")
print_person() # Name: Tom Age: 18
print_person("Bob") # Name: Bob Age: 18
print_person("Sam", 37) # Name: Sam Age: 37
Passando Valores por Nome (Parâmetros Nomeados)
Nos exemplos anteriores, os valores foram passados aos parâmetros pela ordem de posição. Contudo, também podemos passar valores aos parâmetros pelo nome
nome
def print_person(name, age):
print(f"Name: {name} Age: {age}")
print_person(age=22, name="Tom")
Neste caso, estamos passando o valor 22 para o parâmetro age
name
Name: Tom Age: 22
Parâmetros Nomeados com o Símbolo *
O símbolo *
*
def print_person(name, *, age, company):
print(f"Name: {name} Age: {age} Company: {company}")
print_person("Bob", age=41, company="Microsoft")
Aqui, age
company
Name: Bob Age: 41 Company: Microsoft
Se quisermos que todos os parâmetros sejam nomeados, podemos colocar o *
def print_person(*, name, age, company):
print(f"Name: {name} Age: {age} Company: {company}")
Parâmetros Posicionais Obrigatórios
Por outro lado, se desejarmos que alguns parâmetros sejam obrigatoriamente posicionais, podemos usar o símbolo /
/
def print_person(name, /, age, company="Microsoft"):
print(f"Name: {name} Age: {age} Company: {company}")
print_person("Tom", company="JetBrains", age=24)
print_person("Bob", 41)
Aqui, name
Name: Tom Age: 24 Company: JetBrains Name: Bob Age: 41 Company: Microsoft
É possível combinar parâmetros posicionais e nomeados em uma única função:
def print_person(name, /, age=18, *, company):
print(f"Name: {name} Age: {age} Company: {company}")
print_person("Sam", company="Google")
print_person("Tom", 37, company="JetBrains")
print_person("Bob", company="Microsoft", age=42)
Aqui, o parâmetro name
company
age
Name: Sam Age: 18 Company: Google Name: Tom Age: 37 Company: JetBrains Name: Bob Age: 42 Company: Microsoft
Quantidade Indefinida de Parâmetros
Podemos usar o símbolo *
def sum(*numbers):
result = 0
for n in numbers:
result += n
print(f"sum = {result}")
sum(1, 2, 3, 4, 5) # sum = 15
sum(3, 4, 5, 6) # sum = 18
Aqui, a função sum
*numbers
*
for