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
Delvise funktioner
Du kan oprette delvise funktioner i python ved at bruge partial-funktionen fra functools-biblioteket.
Delvise funktioner gør det muligt at skabe en funktion med x parametre til en funktion med færre parametre og faste værdier sat for den mere begrænsede funktion.
Nødvendig import:
from functools import partial
Denne kode vil returnere 8.
from functools import partial
def multiply(x, y):
return x * y
# opretter en ny funktion, der multiplicerer med 2
dbl = partial(multiply, 2)
print(dbl(4))
En vigtig note: standardværdierne starter med at erstatte variabler fra venstre. 2 vil erstatte x. y vil være lig med 4, når dbl(4) kaldes. Det gør ingen forskel i dette eksempel, men det gør det i eksemplet nedenfor.
Øvelse
Rediger den givne funktion ved at kalde partial() og erstatte de første tre variabler i func(). Print derefter med den nye delvise funktion ved kun at bruge én inputvariabel, så output bliver 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!