تقنية

delocalize في بايثون: هل تعيد عددًا؟

نوع النتيجة str للدالة delocalize وfloat للدالة atof في ضبط C
مدخلنا 7.25. [1] [2]

تطبيع النص ليس تحويله إلى عدد. [1] [2]

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

تعيد delocalize نصًا؛ تحول atof نتيجته. [1] [2]

  • نختار C لضبط التجربة. [1] [2]
  • نوع ناتج delocalize هو str. [1] [2]
  • نوع ناتج atof الافتراضي float. [1] [2]
  • نعيد إعداد LC_NUMERIC السابق. [1] [2]
  • اختبرنا 3.12.14؛ لم نختبر تنسيقات دولية. [1] [2]

المثال

import locale as l
old=l.setlocale(l.LC_NUMERIC)
try:
 l.setlocale(l.LC_NUMERIC,'C')
 print(type(l.delocalize('7.25')).__name__)
 print(type(l.atof('7.25')).__name__)
finally: l.setlocale(l.LC_NUMERIC,old)

[1] [2]

يطبع المثال str ثم float. [1] [2]

أين يحصل التحويل؟

تستبدل delocalize فواصل الإعداد المحلي في النص. تستدعي atof المحوّل float افتراضيًا بعد ذلك. [1] [2]

في ضبط C، يبقى نصنا own كما هو، بينما ترفع atof له ValueError. [1] [2]

يبقى نص own مع delocalize وترفع atof خطأ ValueError في ضبط C
نص مؤلف غير عددي. [1] [2]

حدود الضبط

التجربة في عملية معزولة. تغيير الإعداد يؤثر في البرنامج كله، حتى مع استعادته؛ ليس وصفة آمنة للخيوط المتزامنة. [1]

المراجع

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

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