Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Funções parciais
Você pode criar funções parciais em Python usando a função partial
da biblioteca functools
.
Funções parciais permitem derivar uma função com x parâmetros para uma função com menos parâmetros e valores fixos definidos para a função mais limitada.
Importação necessária:
from functools import partial
Este código retornará 8.
from functools import partial
def multiply(x, y):
return x * y
# create a new function that multiplies by 2
dbl = partial(multiply, 2)
print(dbl(4))
Uma nota importante: os valores padrão começarão a substituir as variáveis da esquerda. O 2 substituirá x. y será igual a 4 quando dbl(4) for chamado. Isso não faz diferença neste exemplo, mas faz no exemplo abaixo.
Exercício
Edite a função fornecida chamando partial()
e substituindo as três primeiras variáveis em func(). Em seguida, imprima com a nova função parcial usando apenas uma variável de entrada para que a saída seja igual a 60.
#Following is the exercise, function provided:
from functools import partial
def func(u, v, w, x):
return u*4 + v*3 + w*2 + x
#Enter your code here to create and print with your partial function
from functools import partial
def func(u, v, w, x):
return u*4 + v*3 + w*2 + x
p = partial(func,5,6,7)
print(p(8))
#test_object('p')
test_output_contains('60')
success_msg('Good job!')
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!