2013-07-04 2 views
2

숫자 16은 무엇을 의미합니까? 숫자의 다른 옵션이 있습니까?컴파일 플래그 번호 16

re.compile('(<.*?>)', flags=16) 

는 지금까지 내가 아는 한, 플래그 re.I

답변

1

을 좋아한다 그것은 단지 "상수"입니다.

>>> re.S 
16 

은 물론 당신은 항상 대신 flags=16flags=re.S를 작성해야합니다,하지만 결과는 동일합니다.

+1

다른 사람의 코드를 읽을 때이 숫자를 보는 것은 고통 스럽습니다. – metaphy

+3

@metaphy : 그리고 당신은 그들과 고통을 공유해야합니다. 야구 방망이를 통해. –

+0

@ IgnacioVazquez-Abrams이 상수가 python 3.4의 Enum으로 대체 될지 알고 있습니까? –

4

re.compile에 전달 된 플래그는 '비트 필드'또는 '비트 세트'또는 '비트 플래그'라고합니다. 1, 2, 4, 8, 16, 32, 등등 ...

이 값

은 특별하다 - - 그들은 2 때의 완벽한 능력을있어 당신이 통과 할 수

매 플래그는 다른 값을 가지고 당신은 이진수로 숫자를보고 정확히 1 비트를 설정하고 다른 비트에는 아무 것도하지 않습니다 - 2는 0b10, 4는 0b100, 8은 0b1000, 16은 0b10000 등입니다. 즉, 각 플래그 == 하나를 별도의 비트로 만들어 단일 정수에 각 플래그의 유무를 지정할 수 있습니다. 예를 들어, 12는 0b1100이기 때문에 4와 8의 두 플래그입니다.

관련 문제