Что означает знак «|» в Python? - PullRequest
7 голосов
/ 06 января 2009

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

Ответы [ 3 ]

18 голосов
/ 06 января 2009

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

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

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

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

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

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

0 голосов
/ 31 декабря 2009

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

0 голосов
/ 06 января 2009

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

...