Modifiera Funktioner
Inom programmering är funktioner dynamiska verktyg som kan anpassa sig till olika situationer och behov. De är inte bara fasta kodblock. Du kan förbättra funktioner för att göra dem mer mångsidiga och användarvänliga i olika sammanhang.
I det här kapitlet kommer vi att utforska några viktiga tekniker för att modifiera funktioner, som att använda standardargument och nyckelordsargument.
Låt oss börja med ett enkelt exempel på modifiering av funktioner för att förbättra deras användbarhet i vårt livsmedelsbutikshanteringssystem:
Standardargument
Standardargument är en användbar funktion i Python som låter dig specificera standardvärden för funktionsparametrar.
I funktionen apply_discount()
är parametern discount
satt till 0.10
som standard. Detta innebär att funktionen automatiskt kommer att tillämpa en 10% rabatt om inget annat anges. Som ses i variabeln default_discount_price
, kan vi anropa funktionen med endast price
-parametern.
Men om det behövs kan vi åsidokomma standardvärdet genom att skicka både price
och en anpassad discount
(t.ex. 0.20
för 20%) som demonstreras med variabeln custom_discount_price
.
# 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}")
Nyckelordsargument
Nyckelordsargument i Python låter dig skicka argument genom att uttryckligen namnge varje parameter, vilket gör dina funktionsanrop mer läsbara och flexibla. Detta är särskilt användbart när en funktion har flera parametrar eller när ordningen på argumenten kan vara förvirrande.
I följande exempel specificeras både price
och discount
, medan parametern tax
förblir på sitt standardvärde, vilket ger flexibilitet utan att kompromissa med tydligheten.
# 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}")
Notera
Ordningen på parametrarna spelar ingen roll när de skickas med nyckelordsargument.
Swipe to start coding
Skapa funktioner för att beräkna den totala kostnaden för en produkt genom att tillämpa en rabatt och skatt, med nyckelordsargument och standardvärden för flexibilitet.
- Definiera
apply_discount(price, discount=0.05)
→ Returnerar priset efter att rabatten tillämpats. - Definiera
apply_tax(price, tax=0.07)
→ Returnerar priset efter att skatten lagts till. - Definiera
calculate_total(price, discount=0.05, tax=0.07)
→ Använderapply_discount()
ochapply_tax()
för att returnera det totala priset med både rabatt och skatt tillämpade. - Anropa
calculate_total(120)
med standardrabatt och skatt. - Anropa
calculate_total(100, discount=0.10, tax=0.08)
med anpassade värden via nyckelordsargument.
Utdata krav
- Skriv ut resultatet med standardvärden:
Total kostnad med standardrabatt och skatt: $<total_price_default>
- Skriv ut resultatet med anpassade värden:
Total kostnad med anpassad rabatt och skatt: $<total_price_custom>
Notera
När du definierar funktioner, placera nödvändiga parametrar först, följt av parametrar med standardvärden.
När du anropar funktioner med nyckelordsargument, bör positionella argument komma före nyckelordsargument.
Lösning
Tack för dina kommentarer!