Vamos dar uma olhada em duas palavras-chave que têm funções semelhantes. Você não teria feito dois inutilmente?
descrição def
Deixe-me primeiro dar-lhe um exemplo.
def add(x, y):
return x + y
print(add(3,5))
Aqui está o resultado:
8
As funções são escritas com a palavra-chave def.
add é o nome da função e os argumentos a serem passados são definidos como x e y.
Tem uma função que retorna o resultado da soma de dois valores.
Se você passar 3 e 5 como argumentos para a função add criada desta forma, você pode ver que o resultado é 8.
descrição lambda
Vamos criar a mesma função acima.
add = lambda x,y: x+y
print(add(2,3))
Aqui está o resultado:
5
Ele usa a palavra-chave lambda para receber x e y como argumentos e retorna o resultado da adição dos dois valores.
Lambdas criam funções sem nome por padrão.
E você pode escrever de forma mais concisa em uma linha.
Além disso, não use a palavra-chave return.
Também pode ser usado da mesma forma que uma função, atribuindo-a a uma variável.
Como usá-lo
Vejamos outro exemplo de uso para ajudá-lo a entender.
temp = [1,2,3,4,5]
result = list(filter(lambda x:x>2, temp))
print(result)
Aqui está o resultado:
[3,4,5]
Este é um exemplo de uso do método de filtro para selecionar apenas valores maiores que 2 de um array com elementos de 1 a 5.
lambda recebe um valor, determina se é maior que 2 e retorna valores booleanos True ou False.
O método de filtro atribui um lambda ao primeiro argumento e uma matriz ao segundo argumento.
Ele percorre a matriz e produz um resultado mantendo o valor se for maior que 2 e excluindo-o caso contrário.
O resultado obtido pelo filtro é criado na forma de um array com o método list e armazenado na variável result.
Vamos criar exatamente a mesma função com uma função.
temp = [1,2,3,4,5]
def comp(x):
return x > 2
result = list(filter(comp, temp))
print(result)
Aqui está o resultado:
[3,4,5]
Não importa como você implementa, mas neste exemplo, o lambda é um pouco mais conciso, certo?
Na verdade, se você tirar uma foto do tipo, as implementações def e lambda sairão iguais às funções.
Portanto, você pode pensar nisso como um conceito de que um lambda está incluído em uma função.
Concluindo, seria melhor usar a palavra-chave def para criar uma função que precisa ser reutilizada e usar lambda quando você deseja criar uma função única simples.
Há 2 respostas nesta postagem.
É difícil encontrar pessoas educadas sobre esse assunto, no entanto, você parece saber do que está falando! Obrigado
Obrigado pela visita. Espero que este artigo te ajude!