Categorias
codificação

Sintaxe Python def e lambda e comparação de diferenças

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.

Deixe uma resposta

O seu endereço de email não será publicado.

pt_PTPortuguês