のためにいくつかのPythonの標準ライブラリは、このようなフラグを使用します。Pythonの作成、自己作成したクラス
re.match(pattern, str, re.MULTILINE | re.IGNORECASE)
を使用すると、クラスを自分で作成している場合、私は、それを実装する方法を、疑問に思って。 私はインターネットを検索していることを発見した:それは唯一のショー
bla.function(argument, flag1=0, flag3=1)
を言うのアプローチだ。しかし、私は本当に
bla.function(argument, bla.SOMEFLAG | bla.SOMEOTHERFLAG)
のようにそれをしたいですとその質問は、私のために満足していない Python: passing flags to functions これは可能ですか?
また、これらのフラグを実際の値を参照させずに作成することができます。したがって、フラグで表されるintではなくbla.SOMEFLAGをコード内で実際に求めますか?そのための使用例は次のようになります
mask_list = [
[ 15, "foo", "bar"],
[bla.TRANSPARENT, "egg", 14.3],
[ (4,7,2), {"name":"john"}, bla.TRANSPARENT]
]
mask_list、後で関数によって別のリストと比較することができる(任意の要素を含む)は、マスクを表し、bla.TRANSPARENTフラグが設定されているすべてのインデックスは、取得します比較によって無視される。
誰かが私にファイルへのリンクを渡すことができた場合、これが説明されているか、または簡単な説明が出てくる可能性があります。本当に感謝します。 (私はPython3を使用しています)
ありがとうございました!
あなたができましたあなたのPythonのライブラリソースファイルを見てください。たとえば 're.py'は、' re'がフラグをどのように実装しているかを正確に示します。それらはモジュール内のグローバル変数です。 – Duncan
@Duncanこれは良いアイデアです。これはまさに私が今行っていることです。このファイルでIGNORECASEフラグがsre_compile.SRE_FLAG_IGNORECASEになりました。sre_compile.pyを見ました.SRE_FLAG_IGNORECASEはそこに設定されていません。また、どのように "|"このファイルを見て実装する必要があります。 – Blarify
'|'はちょうどビットであるか、またはフラグは1,2,4,8、...そして1つ以上のものを渡します。実際には 'sre_constants.py'と' sre_compile 'にあります。py'は 'from sre_constants import *'を実行します。 – Duncan