A Python függvény akkor jó, ha első olvasásra világos. Ez az útmutató megmutatja, hogyan írható olvasható Python kód már kezdőként is.
Állítsd be a mivagyunk.hu-t kedvenc forrásként a Google-benMiért fontos az olvasható Python függvény
Sok kezdő megírja az első működő Python függvényét, majd pár hét múlva már nem érti, mit csinált. Az olvasható kód nem trükkökből épül. A lényeg az, hogy a függvény célja érthető legyen, a bemenetek világosak legyenek és a következő fejlesztő ne vakarja a fejét feleslegesen.
1. Nevezd el a Python függvény célját pontosan
A Python függvény neve legyen beszédes, mintha egy barátnak magyaráznád el, mit csinál. A jó név fél siker, mert csökkenti a kód olvasójának terhét.
Rossz példa:
def proc(d):
return sum(d) / len(d)
Jó példa:
def calculate_average(numbers):
return sum(numbers) / len(numbers)
A calculate_average név egyértelmű. A numbers paraméter világosan jelzi a bemenetet.
2. Használj leíró paraméterneveket a Python függvény írásakor
A paraméter neve legyen magyarázó. A kezdő betűk helyett használj érthető szavakat.
Rossz példa:
def discount(p, r):
return p * (1 - r)
Jó példa:
def apply_discount(original_price, discount_rate):
return original_price * (1 - discount_rate)
A függvény hívásakor azonnal látszik, mit jelentenek az értékek.
3. A Python függvény legyen rövid és egy feladatot végezzen
A túl sok feladat egy helyen átláthatatlan kódot eredményez. Jobb több kisebb függvény, mint egy nagy halmaz.
Rossz példa:
def process_order(items, customer_email, discount_code):
# Calculate total
subtotal = sum(item["price"] * item["quantity"] for item in items)
# Apply discount
if discount_code == "SAVE10":
discount = 0.10
elif discount_code == "SAVE20":
discount = 0.20
else:
discount = 0
total = subtotal * (1 - discount)
# Send email
subject = f"Order Confirmation"
body = f"Your order total is ${total:.2f}"
send_email(customer_email, subject, body)
return total
Jó példa: a folyamat lépésekre bontása:
def calculate_order_subtotal(items):
return sum(item["price"] * item["quantity"] for item in items)
def get_discount_rate(discount_code):
discount_rates = {"SAVE10": 0.10, "SAVE20": 0.20}
return discount_rates.get(discount_code, 0)
def apply_discount_to_subtotal(subtotal, discount_rate):
return subtotal * (1 - discount_rate)
def send_order_confirmation_email(customer_email, total):
subject = "Order Confirmation"
body = f"Your order total is ${total:.2f}"
send_email(customer_email, subject, body)
def process_order(items, customer_email, discount_code):
subtotal = calculate_order_subtotal(items)
discount_rate = get_discount_rate(discount_code)
total = apply_discount_to_subtotal(subtotal, discount_rate)
send_order_confirmation_email(customer_email, total)
return total
A process_order így receptként olvasható.
4. Adj docstringet minden fontosabb Python függvény elejére
A név mutatja, mit csinál. A docstring megmutatja a célját, a bemeneteket és a visszatérési értéket.
Példa:
def calculate_shipping_cost(weight_kg, distance_km, is_express=False):
"""
Calculate shipping cost based on weight and distance.
Args:
weight_kg (float): weight in kilograms
distance_km (float): distance in kilometers
is_express (bool): express shipping option
Returns:
float: total cost
"""
A docstring segít megérteni a működést kódolvasás nélkül is.
5. A Python függvény belsejében használj egyértelmű változókat
A kód akkor átlátható, ha a változók világosan jelzik a szerepüket.
Rossz példa:
def calc_bmi(w, h):
h_m = h / 100
res = w / (h_m**2)
return round(res, 1)
Jó példa:
def calculate_bmi(weight_kg, height_cm):
height_meters = height_cm / 100
bmi = weight_kg / (height_meters**2)
return round(bmi, 1)
A height_meters és bmi önmagáért beszél.
6. Kerüld a rejtélyes számokat és használj konstansokat
A mágikus számok félreértést okoznak. A konstansok egyértelművé teszik a szabályokat.
Rossz példa:
def calculate_late_fee(days_overdue):
if days_overdue <= 7:
return days_overdue * 2
else:
return 14 + (days_overdue - 7) * 5
Jó példa:
def calculate_late_fee(days_overdue):
DAILY_FEE_FIRST_WEEK = 2
GRACE_PERIOD_DAYS = 7
BASE_FEE_AFTER_GRACE = 14
DAILY_FEE_AFTER_GRACE = 5
...
A szabályok így láthatók és könnyen módosíthatók.
7. Adj típusjelölést minden Python függvény számára
A type hint megakadályozza a félreértést és megkönnyíti a fejlesztői hibakeresést.
Példa:
def format_user_greeting(user_name: str, age: int, is_member: bool = False) -> str:
membership_status = "member" if is_member else "guest"
return f"Hello {user_name}, age {age}. You are a {membership_status}."
A típusok egy pillantásra érthetők.
Mit vigyél tovább ebből az útmutatóból
A Python függvény akkor valódi érték, ha az olvasó egy pillantással érti. A jól megválasztott név, a tiszta szerkezet, a dokumentált logika és az átgondolt változók együtt alakítják ki a kódot, amely működik és érthető. A digitális világ gyors fejlődése egyre több ilyen átlátható szabályt kívánna, különösen a szabályozási vitákban, ahol a pontosság a legfontosabb.



