async دالة/سياق غير متزامن

آخر تحديث: 2026-09-22

async دالة/سياق غير متزامن

async تُستخدم لتعريف دالة async def أو سياق async with.

التصنيفالكلمات المفتاحية والعبارات
النوعكلمة مفتاحية / عبارة
إصدار بايثون3.5+

📝 الصياغة

async def name(params):
    body
[async with expr as var: block]

▶ مثال

عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:

المخرجات:

hi
المزيد من الحالات قادم قريباً — تابعونا.

❓ أسئلة شائعة

Qما الفرق بين `async def` و`def`؟
Aيُعرّف `async def` دالة كوروتين (coroutine). استدعاؤها لا ينفّذ الجسم؛ بل يُرجع كائن كوروتين. يجب عليك `await` عليه، أو تشغيله بـ `asyncio.run()`، ليعمل فعلًا.
Qلماذا لا يعمل استدعاء دالة async في المستوى الأعلى للوحدة؟
Aلأن الاستدعاء يُرجع كائن كوروتين، ولا يستطيع كود المستوى الأعلى استخدام `await` مباشرةً. الطريقة الصحيحة هي تغليفه: عرّف `async def main(): ...` وشغّله بـ `asyncio.run(main())`.
Qهل يمكن استخدام `async` مع `asyncio` فقط؟
Aلا. `async`/`await` هما صياغة لغوية؛ `asyncio` مجرد التنفيذ الأكثر شيوعًا لحلقة الأحداث. يُستخدم `async with` و`async for` لإدارة السياق غير المتزامن والتكرار غير المتزامن، على التوالي.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%