سؤال

أود استخدامها with بيان في بيثون 2.5 في بعض قانون الإنتاج. تم التراجع عنها، يجب أن أتوقع أي مشاكل (على سبيل المثال مع توافر / التوافق على الأجهزة الأخرى / إلخ)؟

هل هذا الرمز

from __future__ import with_statement

متوافق مع بيثون 2.6؟

هل كانت مفيدة؟

المحلول

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

من عند http://python.org/doc/2.5.2/ref/future.html.

بيان مستقبلي هو توجيه إلى مترجم يمكن تجميع وحدة نمطية معينة باستخدام بناء جملة أو دلالات ستكون متاحة في إصدار مستقبل محدد من Python. يهدف هذا البيان في المستقبل إلى تخفيف الهجرة إلى الإصدارات المستقبلية من Python التي تقدم تغييرات غير متوافقة إلى اللغة. يسمح باستخدام الميزات الجديدة على أساس لكل وحدة واحدة قبل الإصدار الذي تصبح فيه الميزة قياسية.

يمكنك في الواقع فحص العقود الآجلة للحصول على معلومات عند دعمها لأول مرة، عندما لا تكون هناك حاجة إلى الاستيراد بعد الآن، إلخ.

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import __future__
>>> dir(__future__)
['CO_FUTURE_ABSOLUTE_IMPORT', 'CO_FUTURE_DIVISION', 'CO_FUTURE_WITH_STATEMENT', 'CO_GENERATOR_ALLOWED', 'CO_NESTED', '_Feature', '__all__', '__builtins__',
__doc__', '__file__', '__name__', 'absolute_import', 'all_feature_names', 'division', 'generators', 'nested_scopes', 'with_statement']
>>> __future__.with_statement
_Feature((2, 5, 0, 'alpha', 1), (2, 6, 0, 'alpha', 0), 32768)
>>>

أنا شخصيا كنت تستخدم بشدة مع with_statement في بيثون 2.5 لأكثر من عام ولم يكن لديها مشاكل. أنا أيضا تشغيل الشفرة بشفافية مع بيثون 2.6. هناك بعض الحالات الزاوية الغريبة التي عملت في التنظيف باللغة، وغالبا ما تتعلق بتنظيفها بتصريحات مع البيانات.

نصائح أخرى

نعم، هذا البيان ليس أي عملية في Python 2.6، حتى تتمكن من استخدامها بحرية لجعلها with الكلمة الرئيسية في رمز 2.5 الخاص بك أيضا، دون التأثير على تشغيل التعليمات البرمجية في 2.6. هذا في الواقع نية التصميم العام "الاستيراد من المستقبل" في بيثون!

يمكنك استدعاء هذا في Python 2.6 و 3.0 / 1 دون مشاكل (إنه رقم غير مرجع).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top