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
Lukkefunksjoner
En lukning er et funksjonsobjekt som husker verdier i omgivende omfang selv om de ikke er i minnet. La oss gå gjennom det trinn for trinn.
For det første er en nestet funksjon en funksjon definert inne i en annen funksjon. Det er veldig viktig å merke seg at nestede funksjoner kan få tilgang til variablene i det omgivende omfanget. Imidlertid, i det minste i Python, er de bare lesbare. Man kan imidlertid bruke "nonlocal" nøkkelordet eksplisitt med disse variablene for å endre dem.
For eksempel:
Dette fungerer bra ettersom funksjonen 'data_transmitter' kan få tilgang til 'message'. For å demonstrere bruken av "nonlocal" nøkkelordet, vurder dette:
Uten nonlocal nøkkelordet ville utdataene vært "3 9", men med bruken får vi "3 3", det vil si at verdien av "number" variabelen blir endret.
Hva om vi returnerer funksjonsobjektet i stedet for å kalle den nestede funksjonen innenfor? (Husk at også funksjoner er objekter. (Det er Python.))
Og vi kaller funksjonen som følger:
Selv om utførelsen av "transmit_to_space()" var fullført, ble meldingen heller bevart. Denne teknikken der dataene er knyttet til noen kode selv etter slutten av de andre opprinnelige funksjonene kalles lukkninger i Python.
FORDEL: Lukkinger kan unngå bruk av globale variabler og gir en form for data skjuling. (For eksempel når det er få metoder i en klasse, bruk lukkinger i stedet).
Også dekoratører i Python gjør omfattende bruk av lukkinger.
Exercise
Lag en nestet løkke og en Python-lukning for å lage funksjoner for å få flere multiplikasjon funksjoner ved å bruke lukkinger. Det vil si ved å bruke lukkinger, kan man lage funksjoner for å lage multiply_with_5() eller multiply_with_4() funksjoner ved å bruke lukkinger.
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!
