PY-نمط مطابقة

مطابقة نمط بنية البيانات وتفريغها ل Python
التحميل الان

PY-نمط مطابقة الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • MIT/X Consortium Lic...
  • السعر:
  • FREE
  • اسم الناشر:
  • Erik Allik
  • موقع ويب الناشر:
  • https://github.com/eallik/

PY-نمط مطابقة العلامات


PY-نمط مطابقة وصف

PY-Pattern-Matching هو مطابقة نمط بنية البيانات وتفريغه ل Python.usagecall The PatternMatching.match () وظيفة مع وسيطتين: - حجة 1: النمط لتتناسب مع الوسيطة 2: هيكل البيانات لتتناسب مع الوسيطة الاختيارية تتسطح: صحيح أن تكون القيم المتطابقة المسطحة، أي عاد كقيمة مسطحة بغض النظر عن موقعها في هيكل البيانات المتطابقة. قيمة Fratten: إذا كانت تتسطح صحيحا: match_ok، إذا تتسطح غير صحيح: match_ok، matched_data_sulturecaveat: إذا تم تجاهل جميع القيم المتطابقة في النمط، فإن المباراة () لا ترجع tuple ولكن boolean.yes: match_ok = match (النمط، البيانات) لا: match_ok، = تطابق (نمط، البيانات المدمجة في كائنات المباراة المدمجة - أي كائن مطابقة is_instanceany مع تجاهل () لتجاهل القيمة المتطابقة بواسطة كائن المباراة في القيم التي تم إرجاعها. يمكن استخدامها كاختصار لتجاهل (أي). == تطابق (تجاهل، 123) الاستخدام في (الوحدة) الاختبارات (ولكن أيضا في أي مكان آخر) مقارنة قيم العودة الوظائف مملة إذا لم تتمكن من استخدام المشغل ==. على سبيل المثال، عندما تقوم الدالة بإرجاع Tuple وأنت تهتم فقط ببعض أجزاء Tuple وليس Tuple بأكملها: retval = some_function_under_test () تأكيد retval and isinstance (retval، tuple) \ and len (retval) == 3 و betval = == 'foo' \ and isinstance (retval ، tuple) و len (retval ) == 2 \ and isinstance (retval [] ، someexception) مع نمط المطابقة: retval = some_function_under_test () تأكيد retval == ('foo'، (أي، is_instance (someException)، أي) amementsmatchmatchmatch okmatch_ok، القيمة = تطابق (أي، foobar ') تؤكد match_ok والقيمة ==' foobar'match_ok = match (تجاهل ( أي)، "Foobar") قم بتأكيد Match_okmatch_ok، Value1، Value2 Match Match ((أي، أي)، ('FOO'، "BAR")) تأكيد Match_ok وقيمة 1 == 'FOO' و Value2 == 'Bar'Match_ok، ( Value1، value2) = match ((أي، أي)، ('foo'، 'bar')، flatten = false) تأكيد match_ok و value1 == 'foo' و value2 == 'bar'match_ok، (value1،) = تطابق ((أي، تجاهل (أي))، ('foo'، whatev ')) تؤكد match_ok وقيمة 1 ==' foo'match_ok، value1، value2 = match (('foo'، أي، أي)، ('FOO'، 1، 2) تأكيد match_ok وقيمة 1 == 1 وقيمة 2 == 2Match_ok، القيمة 1، القيمة 2، القيمة 3 = تطابق (('foo'، أي، (أي، أي))، (foo '، 1، 1، (2، 3))) تأكيد match_ok وقيمة 1 == 1 وقيمة 2 == 2 وقيمة 3 = 3match_ok، (القيمة 1، (القيمة 2، القيمة 3)) = تطابق ((' foo '، أي، (أي، أي))، ('foo'، 1، 1، (2، 3))، تؤكد flatten = false) match_ok وقيمة 1 == 1 وقيمة 2 == 2 وقيمة value3 = 3no matchmatch_ok = match (3، 4) تأكيد لا Match_ok # لاحظ كيف لا يزال بإمكانك إجراء تفريغ قيم الإرجاع بنجاح وتجاهل "القيمة" إذا كانت المباراة VACTSMATCH_OK، قيمة = Match من قيم الإرجاع وتجاهل "القيمة" إذا كانت المباراة FACTMATCH_OK، (Value1، (Value2، Value3)) = تطابق (('FOO'، (أي، أي)))، ("NOT-FOO"، ( 1، (2 و 3)))))) تأكيد عدم match_ok # ... حتى عندما يكون بنية البيانات mismatchesmatch_ok (value1، (value2، value3)) = تطابق (('foo'، (أي، (أي، (أي، أي)))، ('foo'، bla BLA ')) تأكيد عدم match_ok # ... لا تعتمد على "القيمة 1"، `القيمة 2" و "القيمة 3`" لا شيء "لا شيء" لا يزال بإمكان المانج العودة كل ما تريد هناك؛ يجب عليك التحقق من الصفحة الرئيسية match_ok`.


PY-نمط مطابقة برامج ذات صلة