0
私はこのように、複数の条件を持っている:Pythonの:バイナリ条件
if condition:
flag1 = True
flag2 = testfunc()
flag3 = bool(variable)
if not flag1 and not flag2 and not flag3:
do0
elif flag1 and flag2:
do1
elif flag2 and flag3:
do2
私はこのような何かにそれを変更することができます。あなたが理解できたよう
flags = 0
if condition:
flags += 1
if testfunc():
flags += 2
if bool(variable):
flags += 4
if flags == 0:
do0
elif flags == 3:
do1
elif flags == 6:
do2
は値0、1があることができ、 2、4、8、16、32、...のいずれかを選択します。 Pythonでこれを行うことは可能ですか?ありがとう!
更新。これは、とPyQt4
モジュールの条件(re.UNICODE
| re.DOTALL
のように設定できます)のようなものです。 re
モジュールから
例:
DOTALL = 16
I = 2
IGNORECASE = 2
L = 4
LOCALE = 4
M = 8
MULTILINE = 8
S = 16
U = 32
UNICODE = 32
VERBOSE = 64
X = 64
うわー、これは非常に役に立つと思われます。私はそれをサービスに持っていきます! – ghostmansd
しかし、PyQt4とreの作成者は私が尋ねる方法を使用しているようです。ちょうど教育のために、このようなものを手に入れる方法を理解することは役に立ちます。彼らはこれのためにビットを使いましたか? – ghostmansd
@ghostmansdこれらは[ビット単位の演算子](http://docs.python.org/reference/expressions.html#binarybitwiseoperations)です。これらは、基礎となるCライブラリとの一貫性のためにより多く使われていると思います。同じ方法で動作する純粋なPythonコードを書くことに反対しています。 –