Callable
- Python kursu
- İleri seviye
- Ders 10/83
- 5 dk
Callable ile çağrılabilir türleri öğrenirsin.
Callable
Bazen bir fonksiyonu parametre olarak alırsın. Callable, çağrılabilir nesnelerin (fonksiyon, lambda, sınıf) türünü bildirir.
Söz dizimi: Callable[[ArgT1, ArgT2], RetT]. İlk liste parametre türleri, ikinci öğe dönüş türüdür.
from typing import Callable
def apply(fn: Callable[[int], int], x: int) -> int:
return fn(x)
print(apply(lambda n: n * 2, 5)) # 10Parametre almayan bir fonksiyon için Callable[[], int] yazarsın. Dönüş türü her zaman bulunur.
Yüksek dereceli fonksiyonlar
Bir fonksiyonu parametre olarak alan ya da fonksiyon döndüren fonksiyonlara yüksek dereceli fonksiyon denir. map, filter ve sorted bunlara örnektir.
Callable hint'i, bu tür fonksiyonların imzasını netleştirir. Örnek: def map_int(fn: Callable[[int], int], items: List[int]) -> List[int]:. Burada fn'in ne yaptığı bellidir.
İç içe Callable da yazılabilir: Callable[[int], Callable[[int], int]] bir tamsayı alıp fonksiyon döndüren fonksiyon demektir.
Uygulama Callable ile apply fonksiyonu
apply(fn: Callable[[int], int], x: int) -> int fonksiyonunu yaz. Gövde return fn(x) içersin. typing modülünden Callable içe aktar. print(apply(lambda n: n * 2, 5)) çağrısını yap.
Başlangıç kodu
# typing modülünden Callable içe aktar
# apply(fn: Callable[[int], int], x: int) -> int: fn'i x ile çağır
# apply çağrısını lambda n: n * 2 ve 5 argümanlarıyla yazdırÖrnek çözüm
from typing import Callable
def apply(fn: Callable[[int], int], x: int) -> int:
return fn(x)
print(apply(lambda n: n * 2, 5))Beklenen çıktı
10
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Callable[[int], int] ne tür nesne kabul eder?
- Bir int değer
- Bir int alıp int döndüren fonksiyon Doğru cevap
- Bir int listesi
- Yalnızca bir sınıf
Açıklama: Callable[[int], int] bir int alıp int döndüren fonksiyon türüdür.
2 Callable import et
from typing import ____
def apply(fn: Callable[[int], int], x: int) -> int:
return fn(x)
from typing import Callable
def apply(fn: Callable[[int], int], x: int) -> int:
return fn(x)
Açıklama: Callable typing modülünden gelir; çağrılabilir türü bildirir.
3 Callable bölümlerini eşleştir
| Kavram | Anlamı |
|---|---|
Callable[[int], int] |
int alır, int döndürür |
Callable[[], int] |
Parametresiz, int döndürür |
[int, str] |
Parametre türleri |
int (ikinci) |
Dönüş türü |