تقنية

get_type_hints في بايثون: أين ذهبت بيانات Annotated؟

النتيجة الافتراضية int
الافتراضي. [1] [2]

الناتج المقروء قد يكون أبسط من التعليق الأصلي. [1] [2]

الخلاصة السريعة

افتراضيًا يستبعد get_type_hints بيانات Annotated الإضافية. [1] [2]

  • علقنا x بالنوع Annotated[int,'bud']. [1] [2]
  • القراءة الافتراضية تعيد int. [1] [2]
  • مع include_extras=True يبقى الوصف الإضافي. [1] [2]
  • الخاصية __metadata__ تعيد ('bud',). [1] [2]
  • اختبرنا 3.12.14؛ التعليق الأصلي لا يحذف. [1] [2]

المثال

from typing import (
    Annotated,get_type_hints)
def own(x:Annotated[int,'bud']):
    pass
print(get_type_hints(own)['x']
    is int)
extra=get_type_hints(own,
    include_extras=True)['x']
print(extra.__metadata__)

[1] [2]

عرضان للتعليق

المصدر هنا يجرد بيانات Annotated من النتيجة ما لم نفعل الخيار. المخرجان True ثم ('bud',)؛ الأول يفحص النوع، والثاني يقرأ الوصف. يبقى التعليق في own.__annotations__ كما كتبناه. [1] [2]

bud محفوظة مع الخيار
الإضافي. [1] [2]

النطاق

نفحص تعليقًا جاهزًا مؤلفًا؛ لا نستدعي own أو نختبر قيمة x. لا نحكم على بيانات واردة أو نتيجة أداة فحص أنواع، ولا نختبر مراجع أسماء مؤجلة. [1] [2]

المراجع

  1. Python 3.12: Annotated and get_type_hints
  2. CPython 3.12.14: typing.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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