async/await
- Python kursu
- İleri seviye
- Ders 25/83
- 5 dk
async ve await anahtar kelimelerini öğrenirsin.
async/await
async/await, eşzamanlı (concurrent) kodu okunaklı hâle getiren söz dizimidir. Bir fonksiyonu async def ile tanımlarsın; içerde await ile başka bir eşzamanlı işlemi beklersin.
async def greet(name):
return "Merhaba, " + nameBir async def fonksiyonu çağrılınca hemen sonuç vermez; bir coroutine nesnesi döndürür. Bu nesneyi çalıştırmak için bir olay döngüsü (event loop) gerekir; onu sonraki derste göreceğiz.
Bekleme yapılan yeri await ile işaretlersin; bu sırada olay döngüsü başka işleri yürütebilir.
await ile bekleme
Bir coroutine ya da bekleyen işlemi await ile beklersin. Bu, olay döngüsüne "bu noktada bekleyebilirim, başka iş yap" mesajı verir.
await yalnızca async def içinde geçerlidir; dışarıda yazarsan hata alırsın. await'in yanındaki ifade bir awaitable olmalıdır: coroutine, task ya da future.
async def fetch():
await asyncio.sleep(1)
return "ok"Burada await, asyncio.sleep'i beklerken olay döngüsü başka işleri yürütebilir.
Uygulama async def ile greet yaz
async def greet(name) fonksiyonu "Merhaba, " + name döndürsün. Sonra asyncio.run(greet("Ayşe")) çağrısını print() ile yazdır. import asyncio ile başla.
Başlangıç kodu
# asyncio modülünü içe aktar
# greet adında bir coroutine tanımla; isim ile selam dizesi döndürsün
# greet("Ayşe") çağrısının sonucunu asyncio.run ile yazdırÖrnek çözüm
import asyncio
async def greet(name):
return "Merhaba, " + name
print(asyncio.run(greet("Ayşe")))Beklenen çıktı
Merhaba, Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 async def fonksiyonu doğrudan çağrılınca ne döner?
- Hata fırlatır
- Fonksiyonun sonucu
- None
- Bir coroutine nesnesi Doğru cevap
Açıklama: async def çağrısı hemen çalışmaz; bir coroutine nesnesi döndürür.
2 async def tamamla
____ def greet(name):
return "Merhaba, " + name
async def greet(name):
return "Merhaba, " + name
Açıklama: async def ile bir coroutine fonksiyonu tanımlanır.
3 async/await kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
async def |
Coroutine tanımı |
await |
Bekleme noktası |
coroutine |
Çalıştırılabilir nesne |
event loop |
Yürüten mekanizma |