تقنية

cast في بايثون: تلميح النوع يترك القيمة كما هي

بعد cast يبقى النص 4 ونوع str والكائن نفسه
القيمة الأصلية x هي النص '4'. [1] [2]

راقب القيمة الفعلية. [1] [2]

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

typing.cast() يعيد القيمة كما هي؛ لا يحولها ولا يفحص نوعها وقت التشغيل. [1] [2]

  • cast(int,'4') يبقى النص '4' من نوع str. [1] [2]
  • في المثال، y is x يعطي True: الكائن نفسه. [1] [2]
  • طلب int لا ينفذ تحويلًا عدديًا هنا. [1] [2]
  • y+1 يرفع TypeError رغم التلميح. [1] [2]
  • الدور الموثق إبلاغ فاحص الأنواع بالنوع المقصود؛ تجربتنا لا تشغّل فاحصًا. [1] [2]

المثال

from typing import cast
x='4'
y=cast(int,x)
print(repr(y),type(y).__name__)
print(y is x)
try:
 print(y+1)
except TypeError:
 print('TypeError')

[1] [2]

المخرجات: '4' str، ثم True، ثم TypeError. [1] [2]

الهوية

النوع الفعلي باقٍ لأن الكائن نفسه أُعيد. [1] [2]

العملية التالية

في المثال، y+'1' يعطي '41'؛ هذا ضم نصين، وليس جمع عددين. [1] [2]

جمع النص مع عدد يفشل وضم نص 1 يعطي 41
عمليتان على النص نفسه. [1] [2]

النطاق

اختبرنا 3.12.14 والنص العادي. التلميح لا يثبت صلاحية العملية التالية؛ لم نقس تشخيصات أداة فحص معينة. [1] [2]

المراجع

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

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