يتم إعطاؤك مقتطف رمز يأخذ رقمًا كمدخل ويخرج الرقم في مكان الوحدة (الرقم في أقصى اليمين)، والرقم في مكان العشرة (الرقم الثاني في أقصى اليمين)، والرقم في مكان المائة (الرقم الثالث في أقصى اليمين) . ومع ذلك، هناك بعض التعديلات التي يجب إجراؤها على الكود لجعله أكثر كفاءة وللتعامل مع حالات الحافة.

اكتب دالة `extract_digits(num: int) -> Tuple[int, int, int]` تأخذ عددًا صحيحًا `num` وترجع صفًا من ثلاثة أعداد صحيحة تمثل الرقم في مكان الوحدة، والرقم في مكان العشرة ، والرقم الموجود في خانة المئات من `num`.

اتبع هذه الإرشادات لتنفيذ الوظيفة:
* سيكون طول `num` دائمًا بين 1 و4 (شاملاً).
* يجب عدم تحويل `num` إلى سلسلة أو استخدام أي مكتبات غير قياسية.
* يجب عليك تجنب استخدام الحلقات أو التلاعب المفرط بالسلسلة.
* يجب أن يتكون الناتج دائمًا من ثلاثة أرقام، مع الأصفار البادئة إذا لزم الأمر.
* يجب أن تقوم الدالة بإرجاع الأرقام بنفس الترتيب الذي تظهر به في `num`.

توقيع الدالة: `def extract_digits(num: int) -> Tuple[int, int, int]:`

**مثال**
```
مدخل:
استخراج_أرقام(23)

انتاج:
(0، 2، 3)

توضيح:
يأخذ مقتطف الكود الوارد في وصف المشكلة الرقم من الإدخال ويحشوه بالأصفار البادئة حتى يصل طوله إلى 4. في هذه الحالة، يتم تعبئة الرقم 23 ليصبح "0023". ثم يستخرج الرقم في خانة الوحدة (3)، والرقم في خانة العشرة (2)، والرقم في خانة المئة (0). يجب أن تقوم الدالة بإرجاع هذه الأرقام الثلاثة كمجموعة بنفس الترتيب.
```
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}