Что означает знак "|" в Python?

Этот вопрос изначально задал (ошибочно), что означает "|" Я имею в виду в Python, когда реальный вопрос был о Джанго. На этот вопрос у Триптиха был замечательный ответ, который я хочу сохранить.

3 ответа

Решение

В Python '|' Оператор определен по умолчанию для целочисленных типов и типов набора.

Если два операнда являются целыми числами, то он будет выполнять побитовое или, что является математической операцией.

Если два операнда set типы, '|' Оператор вернет объединение двух множеств.

a = set([1,2,3])
b = set([2,3,4])
c = a|b  # = set([1,2,3,4])

Кроме того, авторы могут определять поведение оператора для пользовательских типов, поэтому если something.property пользовательский объект, вы должны проверить это определение класса для __or__() метод, который будет определять поведение в вашем примере кода.

Таким образом, невозможно дать точный ответ, не зная типов данных для двух операндов, но обычно это будет побитовый или.

Побитовое ИЛИ

Его также можно "обмануть" в трубу, как в оболочках Unix, см. Здесь http://code.google.com/p/python-pipeline/

Другие вопросы по тегам