7 ответов:
в Python и многих других языках программирования,
|- Это побитовое или операция.|=это|Как+=- это+.
Это просто операция или между текущей переменной и другой. Быть
T=TrueиF=False, смотрите вывод графически:r s r|=s -------------- T T T T F T F T T F F Fнапример:
>>> r=True >>> r|=False >>> r True >>> r=False >>> r|=False >>> r False >>> r|=True >>> r True
|=выполняет inplace, побитовое или операция и Союз операции Python устанавливает.например, объединение двух множеств
xиyподелитесь следующими эквивалентными выражениями:>>> x = x | y # (1) >>> x |= y # (2) >>> x.__ior__(y) # (3)где конечное значение
xэквивалентна либо:
- назначенный или операция
- место или операция
- an на месте или с помощью специального метода
см. также раздел B. 8 погружения в Python 3 о специальных методах операторов Python.
вот несколько примеров сравнения или (
|) и на месте или (|=) применяется к наборам:>>> x = {"a", "b", "c"} >>> y = {"d", "e", "f"} >>> # OR, | >>> x | y {'a', 'b', 'c', 'd', 'e', 'f'} >>> x # `x` is unchanged {'a', 'b', 'c'} >>> # Inplace OR, |= >>> x |= y >>> x # `x` is reassigned {'a', 'b', 'c', 'd', 'e', 'f'}вот пример перегрузка
__ior__()метод для итерации iterables вMutableSetабстрактный базовый класс. Смотрите также суб-классифицируются и применяются в Реймонд Hettinger это рецепт OrderedSet (см. строки 3 и 10 соответственно). Вот это нить на Python-ideas о том, почему использовать|=для обновления набора.
он выполняет двоичную побитовую или левую и правую стороны назначения, а затем сохраняет результат в левой переменной.
http://docs.python.org/reference/expressions.html#binary-bitwise-operations
в Python,|=(ior) работает как операция объединения. например, если x=5 и x / =5, то оба значения сначала преобразуются в двоичное значение, затем выполняется операция объединения, и мы получаем ответ 5.
это побитовое или. Допустим, у нас есть
32 |= 10, изображение 32 и 10 является двоичным.32 = 10 0000 10 = 00 1010теперь, потому что | есть или, сделайте побитовое или на двух числах
т. е. 1 или 0 --> 1, 0 или 0 --> 0. Продолжайте это вниз по цепочке
10 0000 | 00 1010 = 10 1010.теперь измените двоичный код на десятичный, 10 1010 = 42.
для|=, подумайте об известных примерах,
x +=5. Это значитx = x + 5,поэтому, если у нас естьx |= 5, это значитx = x bitwiseor with 5.
Comments