0
나는이 같은 여러 조건이 있습니다파이썬 : 이진 조건
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, ... 조건. 파이썬에서 이런 일을 할 수 있습니까? 감사!
업데이트. 이것은 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
와우, 매우 유용하게 보입니다. 나는 그것을 받아 들일 것이다! – ghostmansd
그러나 PyQt4 및 re의 작성자는 내가 묻는 방식을 사용하는 것으로 보입니다. 교육을 위해서 이런 식으로하는 법을 이해하는 것이 유용 할 것입니다. 그들은 이것을 위해 비트를 사용 했습니까? – ghostmansd
@ghostmansd 이들은 [비트 단위 연산자] (http://docs.python.org/reference/expressions.html#binary-bitwiseoperations)입니다. 기본 C 라이브러리와의 일관성을 위해 더 많이 사용한다고 가정합니다. 똑같은 방식으로 작동하는 순수 파이썬 코드를 작성하는 것에 반대합니다. –