Modifisere Funksjoner
I programmering er funksjoner dynamiske verktøy som kan tilpasse seg forskjellige situasjoner og behov. De er ikke bare faste kodeblokker. Du kan forbedre funksjoner for å gjøre dem mer allsidige og brukervennlige i ulike sammenhenger.
I dette kapittelet skal vi utforske noen viktige teknikker for å modifisere funksjoner, som å bruke standardargumenter og nøkkelordargumenter.
La oss starte med et enkelt eksempel på modifisering av funksjoner for å forbedre deres nytte i vårt dagligvarebutikkstyringssystem:
Standardargumenter
Standardargumenter er en nyttig funksjon i Python som lar deg spesifisere standardverdier for funksjonsparametere.
I apply_discount()
-funksjonen er discount
-parameteren satt til 0.10
som standard. Dette betyr at funksjonen automatisk vil anvende en 10% rabatt med mindre annet er spesifisert. Som vist i default_discount_price
-variabelen, kan vi kalle funksjonen med bare price
-parameteren.
Men hvis nødvendig, kan vi overstyre standardverdien ved å sende både price
og en tilpasset discount
(f.eks. 0.20
for 20%) som demonstrert med custom_discount_price
-variabelen.
# Define a function with a default `discount` argument def apply_discount(price, discount=0.10): discounted_price = price * (1 - discount) return discounted_price # Call the function without providing a `discount`, using the default value default_discount_price = apply_discount(100) print(f"Price after applying the default discount: ${default_discount_price}") # Call the function with a custom `discount` value custom_discount_price = apply_discount(100, 0.20) print(f"Price after applying a custom discount: ${custom_discount_price}")
Nøkkelordargumenter
Nøkkelordargumenter i Python lar deg sende argumenter ved eksplisitt å navngi hver parameter, noe som gjør funksjonskallene dine mer lesbare og fleksible. Dette er spesielt nyttig når en funksjon har flere parametere eller når rekkefølgen på argumentene kan være forvirrende.
I det følgende eksempelet er både price
og discount
spesifisert, mens tax
-parameteren forblir på sin standardverdi, noe som gir fleksibilitet uten å gå på bekostning av klarhet.
# Function where `tax` has a default value def calculate_total(price, discount, tax=0.05): total = price * (1 + tax) * (1 - discount) return total # Calling the function using keyword arguments total_cost = calculate_total(price=100, discount=0.15) print(f"Total cost after applying discount: ${total_cost}")
Merk
Rekkefølgen på parametere spiller ingen rolle når de sendes med nøkkelordargumenter.
Swipe to start coding
Lag funksjoner for å beregne den totale kostnaden av et produkt ved å bruke en rabatt og skatt, ved å bruke nøkkelordargumenter og standardverdier for fleksibilitet.
- Definer
apply_discount(price, discount=0.05)
→ Returnerer prisen etter å ha brukt rabatten. - Definer
apply_tax(price, tax=0.07)
→ Returnerer prisen etter å ha lagt til skatten. - Definer
calculate_total(price, discount=0.05, tax=0.07)
→ Brukerapply_discount()
ogapply_tax()
for å returnere totalprisen med både rabatt og skatt brukt. - Kall
calculate_total(120)
ved å bruke standard rabatt og skatt. - Kall
calculate_total(100, discount=0.10, tax=0.08)
ved å bruke tilpassede verdier via nøkkelordargumenter.
Krav til utdata
- Skriv ut resultatet med standardverdier:
Total kostnad med standard rabatt og skatt: $<total_price_default>
- Skriv ut resultatet med tilpassede verdier:
Total kostnad med tilpasset rabatt og skatt: $<total_price_custom>
Merk
Når du definerer funksjoner, plasser nødvendige parametere først, etterfulgt av parametere med standardverdier.
Når du kaller funksjoner med nøkkelordargumenter, bør posisjonsargumenter komme før nøkkelordargumenter.
Løsning
Takk for tilbakemeldingene dine!