ピススイッチ

Python用のシンプルで強力な 'スイッチのようなディスパッチャシステム
今すぐダウンロード

ピススイッチ ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • MIT/X Consortium Lic...
  • 出版社名:
  • Michael Kent

ピススイッチ タグ


ピススイッチ 説明

Pythonのためのシンプルで強力な 'スイッチのようなディスパッチャシステム Pyswitchは、Python用のシンプルで強力な 'スイッチのようなディスパッチャです。それはC言語スイッチステートメントに触発されていますが、より柔軟性があります。ケース値は、Cのような整数に限定されず、「==」等価演算子、または「IN」演算子の左側に使用可能な任意の文字列、または任意の正規表現である可能性があります。これらのタイプの反復値もケース値として使用することができます。スイッチオブジェクトが提供するHandy-Dandy#デコレータを使用して、ケースハンドラ。#デフォルトのハンドラ。デフォルトのハンドラはオプションです。定義されている場合、#他のハンドラでは処理されていないすべてのスイッチ値に対して呼び出されます。定義されていない場合は、未処理の#スイッチ値に対してSwitchErrorが上げられます。#すべてのハンドラには、スイッチに付与されている任意の任意のオプションの位置情報とキーワードパラメータとともに、スイッチがオンになる値が渡されます。#ハンドラは値を返すことができます。その後、ハンドラが呼び出された#スイッチへの呼び出しによって返されます。#当然、ハンドラはあなたが望むものをすることができます。このデフォルトのケース#例では、興味深い情報の文字列を返します。 %r、 " ..." args:%rとkwargs:%r "% ...(value、args、kwargs)#単一の数字の値。 「ケース」デコレータは、厳密に一致するものです。ケース値と呼ばれるCase関数に指定された値は、 '=='等価演算子を使用して使用可能なタイプにすることができます。>>> @ myswitch.case(0)... DEF GotZero(value、* args、* * kwargs):... return "gotzero:args:%rとkwargs:%r"% ...(value、args、kwargs)#数値の範囲の範囲。事件の値として#の反復可能な値を与えることができます。>>> @ MySwitch.Case(範囲(5,10))... DEF GOTFIVETRUNINE(value、* args、** kwargs):... RETURN "GOTFIVETHRUNINE :args:%rおよびkwargs:%r "% ...(value、args、kwargs)#弦のケースの値、完全な一致のための文字列の場合は、%dを得ました。>>> @ myswitch.case( ' Guido ')... Def Gotguido(value、* args、** kwargs):... Return "Gotguido:args:%rとkwargs:%r"% ...( value、args、kwargs)#in 'operator。>>> @ myswitch.casein(' lo ')... def gotlo(value、* args、** kwargs):... return "gotlo:args:%rとkwargs:%r"% ...(value、args、kwargs)#正規表現パターンが文字列に一致します。渡すことができます事前にコンパイルされた正規表現。#CasereGExの場合、ケースハンドラに渡された値は実際に#正規表現#パターンマッチから生じる一致オブジェクトです。>>> @ MySwitch.CaserGex(R ' b() y w *) b ')... Def Gotpyword(matchobj、* args、** kwargs):... Return "GotpyWord: group(1)が '%s'、 " ..."であるMatchObjectを得ました。%rとkwargs:%r "% ...(matchobj.group(1)、args、kwargs)#そして最後に、iTeerableの混合型値をケース、#casein、およびcaseregexに渡すことができます。ここでは、正確な一致に使用される異種#値のリストを渡します。>>> @ MySwitch.Case()... DEF GotStuffinSeq(value、* args、** kwargs ):... RETURN "GOTSTUFFINSEQ:ARGS:%RとKWARGS:%R"% ...(value、args、kwargs)#>>> myswitch( 0、testing = false) "Gotzero:args:()とkwargs:{'testing':false}" >>> myswitch(6、flag = '退屈') "Gotfivethrunine:私は6を得ました、args:()とkwargs:{'flag': '退屈'} ">>> myswitch(10,42) 'デフォルトのハンドラ:args:(42、)およびkwargs:{}:{} '>>> MySwitch(' Guido '、BDFL = true) "Gotguido:args:()とkwargs:{' bdfl ':true}" >>> myswitch(' guido周辺の誰かが見た? ') "デフォルトハンドラ:guidoが登録されているvalue with?'、args:()とkwargs:{}" >>> myswitch( 'yep、そして彼は言った。'、99、はい= 'no') "gotlo:args:(99、)およびkwargs:{'yes': 'no'}" >>> myswitch( '鳥はその日のPython単語)を使って' lo 'を得ました。 「Gotpyword: args:()とkwargs:{} ">>> MySwitch( 'YO')" gotstuffinseq:args:()とkwargs :( 'yo') "gotstuffinseq:gotstuffinseq:args:()とkwargsが「yo」を手に入れました。 : {}" 要件: ・Python このリリースの新機能: __call__メソッドがシノニムになるため、スイッチクラスのスイッチメソッドを呼び出す必要はもうありません。その代わりに、次のようにします。 ・MySwitch = Switch() ・...あなたのケースを登録してください... ・ReturnValue = MySwitch(value_to_switch_on) ・しかし、スイッチ方法はまだ後方互換性のためにそこにあります。


ピススイッチ 関連ソフトウェア