يصل Python 3.11 مع تحسينات في الأداء وإعادة تصميم التخزين المؤقت والمزيد

بايثون

Python هي لغة برمجة مفسرة عالية المستوى تؤكد فلسفتها على قابلية قراءة كودها.

بعد عام من التطوير ، تم نشر النسخة الجديدة من لغة البرمجة Python 3.11، سيتم دعم الفرع الجديد لمدة عام ونصف ، وبعد ذلك سيتم تشكيل بقع مع نقاط الضعف لمدة ثلاث سنوات ونصف أخرى.

في الوقت نفسه ، بدأ اختبار ألفا لفرع Python 3.12 (وفقًا لجدول التطوير الجديد ، يبدأ العمل في فرع جديد قبل خمسة أشهر من إصدار الفرع السابق ويصل إلى اختبار ألفا بحلول وقت الإصدار التالي).

سيكون فرع Python 3.12 في إصدارات ألفا لمدة سبعة أشهر ، سيتم خلالها إضافة ميزات جديدة وإصلاح الأخطاء. بعد ذلك ، سيتم إجراء اختبار بيتا لمدة ثلاثة أشهر ، سيتم خلالها حظر إضافة ميزات جديدة وسيتم إيلاء الاهتمام الكامل لإصلاحات الأخطاء. في الشهرين الأخيرين قبل الإطلاق ، سيكون الفرع في مرحلة مرشح الإطلاق ، وعند هذه النقطة سيحدث الاستقرار النهائي.

الميزات الرئيسية الجديدة في Python 3.11

في هذا الإصدار الجديد تم القيام بعمل كبير لتحسين الأداء، حيث يتضمن الفرع الجديد تغييرات ذات صلة مع تسريع ونشر مكالمات الوظائف المضمنة، واستخدام مترجمين فوريين سريعين للعمليات النموذجية ، بالإضافة إلى التحسينات التي أعدها مشروعا Cinder و HotPy. اعتمادًا على نوع التحميل ، تزداد سرعة تنفيذ التعليمات البرمجية بين 10٪ و 60٪. في المتوسط ​​، زاد الأداء عند اجتياز مجموعة اختبار Pyperformance بنسبة 25٪.

تم إعادة تصميم آلية التخزين المؤقت من الرمز الثانوي ، مما أدى إلى تقليل وقت بدء تشغيل المترجم الفوري بنسبة 10-15٪. يتم الآن تخصيص الكائنات التي تحتوي على رمز و bytecode بشكل ثابت بواسطة المترجم الفوري ، مما جعل من الممكن التخلص من خطوات فك الشفرة التي تم جلبها من ذاكرة التخزين المؤقت وتحويل الكائنات باستخدام رمز لوضعها في ذاكرة الكومة.

مضاف دعم مجموعات الاستثناء، مما يمنح البرنامج القدرة على رفع ومعالجة عدة استثناءات مختلفة في نفس الوقت. تم اقتراح نوعي استثناءات جديدتين ExceptionGroup و BaseExceptionGroup لتجميع استثناءات متعددة معًا ، ويتم إضافة التعبير "باستثناء *" إلى استثناءات منفصلة من مجموعة.

تمت إضافة نوع LiteralString خاص وحيد جدا يمكن أن تتضمن سلاسل حرفية متوافقة مع النوع LiteralString (أي ، السلاسل والسلاسل المجردة من النوع LiteralString ، ولكن ليست سلاسل عشوائية أو مختلطة من النوع str). يمكن استخدام نوع LiteralString للحد من تمرير وسيطات السلسلة إلى الوظائف ، والاستبدال التعسفي لأجزاء من السلاسل حيث يمكن أن تؤدي إلى نقاط ضعف ، على سبيل المثال ، عند إنشاء سلاسل لاستعلامات SQL أو أوامر shell.

بالإضافة إلى ذلك أيضًا يتم توفير القدرة على تمييز العناصر الفردية للقواميس (TypedDict) مع علامتي مطلوب وغير مطلوب لتحديد الحقول المطلوبة والاختيارية (افتراضيًا ، تكون جميع الحقول المعلنة مطلوبة إذا لم يتم تعيين المعلمة الإجمالية على مزيف).

تمت إضافة مصمم فئة وطريقة ووظيفةdataclass_transform، عند التحديد ، يتعامل مدقق النوع الثابت مع الكائن كما لو كان يستخدم @ dataclasses.dataclass decorator.

من التغييرات الأخرى التي تبرز في هذا الإصدار الجديد:

  • تمت إضافة القدرة على استخدام التجميع الذري ((؟>…)) والمحددات الكمية الغيرة (الملكية) (* +، ++،؟ +، {m، n} +) في التعبيرات العادية.
  • تمت إضافة النوع TypeVarTuple ، والذي يسمح باستخدام الأدوية المتغيرة ، على عكس TypeVar ، التي لا تغطي نوعًا واحدًا ، ولكن عددًا عشوائيًا من الأنواع.
  • تتضمن المكتبة القياسية وحدة tomllib مع وظائف لتحليل تنسيق TOML.
  • تمت إضافة طريقة add_note () إلى فئة BaseException ، مما يسمح بإرفاق ملاحظة نصية بالاستثناء ، على سبيل المثال لإضافة معلومات سياقية لم تكن متاحة في وقت طرح الاستثناء.
  • تمت إضافة نوع خاص ذاتي لتمثيل الفئة الخاصة الحالية. يمكن استخدام Self لإضافة تعليق توضيحي للطرق التي ترجع مثيلاً لفصلك بطريقة أبسط من استخدام TypeVar.
  • تمت إضافة خيار سطر الأوامر "-P" ومتغير بيئة PYTHONSAFEPATH لتعطيل الاتصال التلقائي لمسارات الملفات التي قد تكون غير آمنة بـ sys.path.
  • تم تحسين الأداة المساعدة py.exe لمنصة Windows بشكل كبير لدعم بناء الجملة "-V:". / " بالإضافة إلى "- . ».
  • تم تحويل العديد من وحدات الماكرو C API إلى وظائف مضمنة عادية أو ثابتة
  • تم إهمال الوحدات النمطية uu و cgi و pip و crypt و aifc و chunk و msilib و telnetlib و audioop و nis و sndhdr و imghdr و nntplib و spwd و xdrlib و cgitb و mailcap و ossaudiodev و sunau وستتم إزالتها من Python. 3.13 الإصدار.
  • تمت إزالة وظائف PyUnicode_Encode *.
  • تمت إضافة فئة TaskGroup إلى الوحدة النمطية غير المتزامن مع تنفيذ مدير سياق غير متزامن ينتظر أن تكتمل مجموعة المهام.
  • تتم إضافة المهام إلى مجموعة باستخدام طريقة create_task ().

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي. 


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.