CodeBlanks Logo Icon CodeBlanks

Sadece anahtar kelime

* 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)               # hata

Bu, 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

main.py
# create_user fonksiyonunu tanımla

Örnek çözüm

main.py
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

Soru
create_user("Ayse", ____="admin", active=True)
Cevap
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ı

Başlangıç bölümündeki tüm dersler