pycontracts.

حزمة بيثون تسمح بإعلان القيود على معلمات الوظائف وقيم العودة
التحميل الان

pycontracts. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • LGPL
  • اسم الناشر:
  • Andrea Censi

pycontracts. العلامات


pycontracts. وصف

حزمة بيثون التي تسمح بإعلان القيود على معلمات الوظائف وقيم العودة Pycontracts هي مكتبة بيثون تسمح بإعلان القيود على معلمات الوظائف وقيم الإرجاع. وهو يدعم نظام الأساسي النوع، ومتغيرات ملزمة، والقيود الحسابية، ولديها العديد من العقود المتخصصة (لا سيما عن صفائف numpy). يتبع ملخص موجز. راجع الوثائق الكاملة في: http://andreacensi.github.com/contracts/why: الغرض من pycontracts هو عدم تحويل الثعبان إلى لغة مكتوبة ثابتة (وإن كنت يمكن أن تكون صارمة كما كنت ترغب في ذلك)، ولكن، بل ، لتجنب التحقق من الوقت المستهلكة والتبض النظر عن الشروط المسبقة المختلفة. في الواقع، أكثر من قيود النوع، وجدت مفيدة القدرة على فرض قيود القيمة والحجم. على سبيل المثال، "أحتاج إلى قائمة ما لا يقل عن 3 أرقام إيجابية" يمكن التعبير عنها كقائمة (الرقم،> 0)). إذا وجدت أن pycontracts مبهمين بالنسبة لك، فقد ترغب في تجربة بديل أبسط، مثل Typecheck. إذا وجدت أن Pysontracts لا يكفي بالنسبة لك، فمن المحتمل أنك تريد أن تستخدم Haskell بدلا من Python.contracts يمكن تحديدها بثلاث طرق: * باستخدام التعليقات التوضيحية (لبيتثون 3) --- هذا ربما الطريقة الأكثر بساطة: @ العقود def my_function (a: 'int،> 0'، b: 'القائمة ، n> 0') -> 'القائمة ': # يتطلب B أن تكون قائمة غير قادرة، والقيمة المرتجعة # إلى لها نفس الطول. ... * باستخدام: النوع: و: Retype: العلامات في DocStrings. وبهذه الطريقة، سيتم تضمينها في وثائق Sphinx الخاصة بك: ontacts def my_function (a، b): "" "وظيفة الوصف.: النوع A: INT،> 0: النوع B: قائمة ، N> 0: RTYPE: قائمة "" "" ... * استخدام الحجج إلى الديكور؛ الطريقة الأقل تدخلا: oncontacts (a = 'int' int،> 0 '، قائمة ، n> 0'، returns = 'list قائمة ') def my_function (a، b): ... علاوة على ذلك، هناك وظائف فائدة للتحقق اليدوي للقيم: تحقق ('صفيف (UINT8)، H> 10، W> 10'، صورة) بالإضافة إلى السنانير لتوسيع Pycontracts مع أنواع العقود الجديدة: new_contract ('valid_name '، Lambda S: ISINSTANCE (S، STR) و LEN (S)> 0) تحقق (' Dict (int: (Valid_name، Int)) "، الموظفين) الحالة: pycontracts تم اختبارها جيدا وتوثيقها، لكنني الحفاظ على الإصدار إلى 0.9، حيث من المحتمل أن يتم إجراء بعض الاختلافات الطفيفة في بناء الجملة بناء على تعليقات المستخدمين والاقتراحات. متطلبات: بيثون


pycontracts. برامج ذات صلة