问题
I see a "pipe" character (|
) used in a function call:
res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)
What is the meaning of the pipe in ax|bx
?
回答1:
It is a bitwise OR of integers. For example, if one or both of ax
or bx
are 1
, this evaluates to 1
, otherwise to 0
. It also works on other integers, for example 15 | 128 = 143
, i.e. 00001111 | 10000000 = 10001111
in binary.
回答2:
This is also the union set operator
set([1,2]) | set([2,3])
This will result in set([1, 2, 3])
回答3:
Bitwise OR.
回答4:
Yep, all answers above are correct.
Although you could find more exotic use cases for "|", if it is an overloaded operator used by a class, for example,
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
In this specific use case pipe "|" operator can be better thought as a unix pipe operator. But I agree, bit-wise operator and union set operator are much more common use cases for "|" in Python.
回答5:
It is a bitwise-or.
The documentation for all operators in Python can be found in the Index - Symbols page of the Python documentation.
来源:https://stackoverflow.com/questions/5988665/pipe-character-in-python