Sadece anahtar kelime
- Python kursu
- Başlangıç
- Ders 79/116
- 4 dk
* ile sadece anahtar kelime parametrelerini öğrenirsin.
Sadece anahtar kelime parametreleri
Bir * işaretinden sonra gelen parametreler sadece anahtar kelime (keyword-only) olur; konumsal olarak geçilemez:
def create_user(name, *, role, active):
...
create_user("Ayse", role="admin", active=True) # gecerli
create_user("Ayse", "admin", True) # hataBu, okunabilir çağrılar sağlar. role ve active parametreleri adlarıyla verilmesi zorunlu kılar.
Yıldız, konumsal ve anahtar kelime bölgesini ayırır.
Neden sadece anahtar kelime?
Sadece anahtar kelime parametreleri, çağrıların ne yaptığını açık hale getirir:
send_email(to, *, subject, body, cc=None)Burada subject ve body konumsal olarak geçilemez; bu da çağrıyı okuyanı yanlitmaz. send_email("a@b.com", "Merhaba", "Selam") ifadesi hata verir, yanlış kullanıma engel olur.
API tasarımında bu özellik çok kullanılır; çünkü çağrıların belirsiz olmasını önler.
Uygulama Sadece anahtar kelime fonksiyonu yaz
create_user adında bir fonksiyon tanımla; name konumsal, sonra *, sonra role ve active sadece-anahtar-kelime parametreleri olsun. Gövdede print(name, role, active) yapsın. create_user("Ayse", role="admin", active=True) ile çağır.
Başlangıç kodu
# create_user fonksiyonunu tanımlaÖrnek çözüm
def create_user(name, *, role, active):
print(name, role, active)
create_user("Ayse", role="admin", active=True)Beklenen çıktı
Ayse admin True
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 def f(a, *, b): ... cagrisinde hangisi geçerlidir?
- f(1, b=2) Doğru cevap
- f(1, 2)
- f(a=1, 2)
- f(b=1, a=2)
Açıklama: a konumsal, b yıldızdan sonra anahtar kelime olmalı.
2 Sadece anahtar kelime çağrısını tamamla
create_user("Ayse", ____="admin", active=True)
create_user("Ayse", role="admin", active=True)
Açıklama: role="admin" anahtar kelime olarak geçilir.
3 Sadece anahtar kelime özelliklerini eşleştir
| Kavram | Anlamı |
|---|---|
* |
Bölge ayıracı |
sadece anahtar kelime |
Konumsal olamaz |
role="admin" |
Anahtar kelime çağrısı |
API tasarımı |
Kullanım alanı |