Символ трубы в Python

Я вижу символ "pipe" (|), используемый при вызове функции:

res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)

В чем смысл трубы в ax|bx?

Ответ 1

Это побитовое ИЛИ целых чисел. Например, если один или оба из ax или bx равны 1, это оценивается как 1, в противном случае - 0. Он также работает с другими целыми числами, например 15 | 128 = 143, т.е. 00001111 | 10000000 = 10001111 в двоичном формате.

Ответ 2

Это также оператор объединения множеств

set([1,2]) | set([2,3])

Ответ 4

Да, все ответы выше правильные.

Хотя вы можете найти более экзотические варианты использования для "|" , если это перегруженный оператор, используемый классом, например,

https://github.com/twitter/pycascading/wiki#pycascading

input = flow.source(Hfs(TextLine(), 'input_file.txt'))
output = flow.sink(Hfs(TextDelimited(), 'output_folder'))

input | map_replace(split_words, 'word') | group_by('word', native.count()) | output

В этом конкретном случае использования трубы "|" оператора можно лучше подумать как оператора системы unix. Но я согласен, что бит-мудрый оператор и оператор объединения - гораздо более распространенные случаи использования для "|" в Python.

Ответ 5

Это поразрядное или.

Документацию для всех операторов в Python можно найти на странице Index - Symbols документации Python.