type hints و dataclasses
Type Hints & dataclasses
Type Hints و dataclasses
تلميحات الأنواع (Type Hints) وصفت بها Python عام 2015 (PEP 484) طريقة لتوثيق الأنواع المتوقعة مباشرةً في الكود. لا تُنفَّذ عند التشغيل — Python تتجاهلها — لكنها تُساعد أدوات مثل mypy وPyCharm في اكتشاف الأخطاء قبل التشغيل. و@dataclass هو مُزخرف يُولّد كوداً متكرراً لك.
التلميحات الأساسية — Basic Type Hints
التلميحات وثيقة حية في الكود — أوضح بكثير من تعليق منفصل مثل # a هو int.
Optional — القيم الاختيارية
Optional[X] يعني أن القيمة إما X أو None. استخدمه دائماً عندما يمكن للدالة أن تُرجع None.
List، Dict، Tuple، Set
Union — أنواع متعددة
@dataclass — فئات البيانات
كتابة فئة بسيطة لتخزين بيانات تتطلب كوداً متكرراً: __init__، __repr__، __eq__. @dataclass يُولّد كل ذلك تلقائياً.
@dataclass — الميزات المتقدمة
field(default_factory=list) ضروري للحقول القابلة للتغيير (lists, dicts) — لا تستخدم orders: List[str] = [] مباشرةً لأن القائمة ستُشارَك بين جميع الكائنات.
frozen=True — كائنات غير قابلة للتعديل
mypy — فحص الأنواع
التلميحات لا تُنفَّذ عند التشغيل. mypy هو أداة مستقلة تفحص الأنواع قبل التشغيل:
pip install mypy
mypy your_script.py
سيكتشف mypy أخطاء مثل:
- تمرير
strحيث تُتوقعint - استخدام قيمة
Optionalدون التحقق منNone - نسيان
returnفي دالة تُرجع قيمة