Что означает знак "|" в 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/