Использовать битовые флаги. Вы можете выполнить поиск в google для получения дополнительной информации. Проще говоря, вы можете хранить логические значения в двоичной форме, так как True/False - это один бит, вы можете сделать 4 бита или 1 байт для хранения 4 разных логических элементов.
Так скажем так:
синтаксис питона:
a = 0x0
# [это питон представление битового флага или двоичного числа <class 'int'>
или python27 <type 'int'>
]
двоичное представление:
0x0 = 000
[ноль равен нулю, не имеет значения, сколько времени имеет двоичная переменная]
0x1 = 001
[1]
0x2 =[2]
0x4 = 100
[4]
так что здесь мы имеем 3 или более различных логических мест, которые мы можем проверить, с момента 000000000001 == 001 == 01 == 0x1
но в битовых флагов
0x3 = 011
[3 = 2 + 1]
0x5 = 101
[5 = 4 + 1]
0x6 = 110
[6 = 4 + 2]
0x7 = 111
[7 = 4 + 2 + 1]
В САМЫЕ ПРОСТОЙ ТЕРМИНЫ Я дам вам один синтаксис сравнения &
, что означает И, это означает, что место «1» в битовом флаге должно быть одинаковым. Таким образом, в практическом плане 0x1 & 0x2 == 0x2 будет Ложное, потому что 001 & 010 не имеет значение «1» в том же месте
, так что если вы хотите, чтобы проверить на два типа в битовом флаг просто добавить их вместе и проверить, с синтаксисом выше.
пример: 0x3&(0x1+0x2)==(0x1+0x2)
Надеюсь, это поможет. Счастливый гуглинг.
Нет необходимости использовать кортеж (диапазон (3)) в Python 3 - назначение кортежа генератору отлично работает (я только что протестировал его). –
@ Крис, спасибо. исправлено. – aaronasterling