Python Annotations - Arabic


الـ Annotations هي الهوامش الجانبية الـ بتكتبها لو بتذاكر من كتاب لجزئية عاوز تعمل تذكير عليها عشان لما ترجعلها تفتكر بتتكلم عن ايه.

 

انت مش بتكتب تفاصيل لكن بتكتب فقط حاجة كده تذكيرية, زي الصورة الرئيسية المرفقة بالمقال

 

تلاحظ كمان ان الهوامش اختيارية ولا تؤثر بأي شكل على مضمون الكتاب ويمكن تجاهلها.

 

كذلك الأمر في البرمجة, الـ Annotations هي طريقة كتابة الكود بحيث انه يتفهم بيعمل ايه بمجرد القراءة وكذلك بيتم التعامل مع الـ Annotation كجزء من الكود لكنها لا تؤثر على الكود بأي شكل وتعتبر اختيارية من حيث الاضافة او لا, شوف الكود التالي:

 

def foo(a: 'Return some text'):
    print(a)

 

هنا انا اضفت هامش بجانب الـ Variable Argument بقول فيها ان الـ a هترجع شوية كلام (Return some text) او بمعنى ادق النية من الـ a هي ارجاع شوية كلام, مع ملاحظة أن الـ ِAnnotation الـ كتبتها لا تؤثر بشكل او بأخر على الكود او الـ Output باي شكل.

 

مش فاهم كمل وهتفهم.

 

تعالى نعمل Execute للكود الـ كتبناه باكثر من Data Type

 

foo('Hello World')
foo(False)
foo(12)

 

هتلاحظ ان مفيش اي اختلاف عن الـ Function العادية عند الـ Excution, تعالي نكتب نفس الـ Function الفائت ونشيل الـ Annotation ونعمل Excution تاني

 

def foo(a):
    print(a)

foo('Hello world')
foo(12)
foo(False)

 

الـ Function دي والـ قبلها مفيش فرق مبنهم الا ان الكود الاول كان مضاف ليه هامش توضيحي (الـ Annotation)

 

تعالى نكتب كود عملي اكتر, الكود التالي:

** هاعمل 2 Variable واحد للاسم الأول والثاني الاسم الاخير

** بس الـ Variables دي مش مفهومة بحيث اني كاتب…

** حرف x حرف y  مش محدد انهي الاسم الاول و انهي الأخير

** والحرفين مش معبرين عن شئ اصلا

** بس انا مستخدم Annotations لتوضيح غرض كل من الـ Variables

** كمان ضايف Annotation للـ Function ذات نفسها لتوضح هي بتعمل ايه

 

def name(x: 'First name', y: 'Last name') -> 'Return fullname':
    print(x + ' ' + y)

 

طبعا الـ Annotation مش بس بتكون رسالة, ممكن تكون Data Type, كالتالي:

 

def name(x: str, y: int) -> 'Return fullname':
    print(x + ' ' + y)

 

وطبعا بقدر اضيف الـ Default Value عادي, لكنها بتكون بعد الـ Annotation, كالتالي:

 

def name(x: 'First name' ='Mohamed', y: 'Last name' = 'Ayman') -> 'Return fullname':
    print(x + ' ' + y)

 

وبستدعي الـ Annotation الخاصة بالـ Functoin كالتالي

 

print(name.__annotations__)

 

 

Multiple Annotations

 

هي نفس الكلام اللى اتقال فوق لكن مع استخدام الـ Dic Type, لان الـ Dictionary بيوفر Object اسهل من حيث القراءة

 

def div(a: dict(type=float, help='the dividend')):
    print(a)

 

هو المقال مختصر لان انا ركزت على التعرف على الـ Annotation كـ Python Syntax.

 

بس كده.