7.1 Criando funções
Em Python, criar funções é um aspecto fundamental da programação que permite que o código seja mais modular, reutilizável e legível. As funções em Python são definidas usando a palavra-chave def, seguida pelo nome da função e parênteses com parâmetros.
Você pode sempre pensar em uma função como um conjunto de comandos reunidos em um grupo e dado um nome a esse grupo. A forma geral de declaração de uma função é a seguinte:
def nome(parâmetros):
comando1
comando2
comandoN
Uma função simples em Python pode parecer assim:
def greet():
print("Hello, World!")
A chamada de uma função é feita escrevendo seu nome com parênteses:
greet() # Irá imprimir: Hello, World!
Chamar uma função é equivalente a escrever seu código interno no local da chamada. Ao invés de escrever o mesmo código repetidamente, ele pode ser colocado em blocos separados e dado um nome.
7.2 Passando argumentos para a função
Trabalhar com funções não seria tão interessante se elas sempre fizessem a mesma coisa — apenas um bloco de comandos nomeado e pronto. Ao invés disso, funções ganharam parâmetros — variáveis pelas quais diferentes valores podem ser passados para a função.
Variáveis dentro de uma função são chamadas parâmetros da função. E os valores que são passados a eles em uma chamada específica são chamados argumentos da função. Os parâmetros da função simplesmente recebem os valores dos argumentos.
def greet(name):
print("Hello,", name)
greet("Alice") # Irá imprimir: Hello, Alice!
Exemplo de função com dois argumentos:
def print_sum(a, b):
print(f"Soma de {a} e {b} é {a + b}")
print_sum(10, 15) # Irá imprimir: Soma de 10 e 15 é 25
E claro, expressões inteiras podem ser passadas como argumentos:
def print_sum(a, b):
print(f"Soma de {a} e {b} é {a + b}")
print_sum(10*10-123, 15//2) # Irá imprimir: Soma de -23 e 7 é -16
Útil! Para os fãs de C/C++ — todas as variáveis em Python são referências do ponto de vista do C++. Os parâmetros da função também. Ao atribuir, o valor nunca é copiado ou duplicado — apenas a referência é atribuída.
7.3 Função — é um objeto
Em Python, funções são objetos de primeira classe, o que significa que elas podem ser usadas como quaisquer outros objetos. Isso dá aos desenvolvedores uma ferramenta poderosa para criar soluções de software flexíveis.
Funções como objetos
Como objetos de primeira classe, funções em Python podem ser:
- Atribuídas a uma variável
- Passadas como argumentos para outras funções
- Retornadas de outras funções
- Incluídas em estruturas de dados, como listas, dicionários
Exemplos:
def shout(text):
return text.upper()
yell = shout
def greet(func):
greeting = func("Hello") # chama a função
print(greeting)
greet(shout)
No futuro, voltaremos a esse assunto, mas por enquanto lembre-se — tudo em Python é um objeto. Funções, classes, exceções, listas, módulos — tudo.
GO TO FULL VERSION