Modifiera Funktioner
Inom programmering är funktioner dynamiska verktyg som kan anpassas 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 detta kapitel kommer vi att utforska några viktiga tekniker för att modifiera funktioner, såsom att använda standardargument och nyckelordsargument.
Låt oss börja med ett enkelt exempel på modifiering av funktioner för att öka deras användbarhet i vårt system för hantering av livsmedelsbutiker:
Standardargument
Standardargument är en användbar funktion i Python som gör det möjligt att ange standardvärden för funktionsparametrar.
I funktionen apply_discount()
är parametern discount
satt till 0.10
som standard. Det innebär att funktionen automatiskt tillämpar en 10 % rabatt om inget annat anges. Som visas i variabeln default_discount_price
kan vi anropa funktionen med enbart parametern price
.
Om det behövs kan vi dock åsidosätta standardvärdet genom att ange både price
och en egen 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}")
Nyckelargument
Nyckelargument i Python gör det möjligt att skicka argument genom att uttryckligen namnge varje parameter, vilket gör funktionsanropen 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 anges både price
och discount
, medan parametern tax
behåller 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}")
Observera
Ordningen på parametrarna spelar ingen roll när de skickas med nyckelargument.
Swipe to start coding
Skapa funktioner för att beräkna den totala kostnaden för en produkt genom att tillämpa rabatt och moms, med hjälp av nyckelordsargument och standardvärden för flexibilitet.
- Definiera
apply_discount(price, discount=0.05)
→ Returnerar priset efter att rabatten har tillämpats. - Definiera
apply_tax(price, tax=0.07)
→ Returnerar priset efter att momsen har 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 moms tillämpade. - Anropa
calculate_total(120)
med standardrabatt och standardmoms. - Anropa
calculate_total(100, discount=0.10, tax=0.08)
med egna värden via nyckelordsargument.
Utskriftskrav
- Skriv ut resultatet med standardvärden:
Total cost with default discount and tax: $<total_price_default>
- Skriv ut resultatet med egna värden:
Total cost with custom discount and tax: $<total_price_custom>
Obs
När du definierar funktioner, placera obligatoriska parametrar först, följt av parametrar med standardvärden.
Vid anrop av funktioner med nyckelordsargument ska positionella argument komma före nyckelordsargument.
Lösning
Tack för dina kommentarer!