我有多个条件,如下所示:
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 中做这样的事情吗?谢谢!
更新。这类似于re
和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