Ich sehe ein "Pipe" -Zeichen ( |
), das in einem Funktionsaufruf verwendet wird:
res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)
Was bedeutet das Rohr ax|bx
?
Antworten:
Es ist ein bitweises ODER von ganzen Zahlen. Wenn beispielsweise einer oder beide von ax
oder bx
sind 1
, wird dies als 1
, andernfalls als ausgewertet 0
. Es funktioniert auch auf anderen Zahlen, zum Beispiel 15 | 128 = 143
, das heißt 00001111 | 10000000 = 10001111
in binär.
True
oder False
, and
und or
immer wieder zurückkehrt einen ihrer Operanden, also „Koaleszenz“ und nicht als „logisch“.
__or__
Methode des ersten Operanden mit dem zweiten Operanden aufgerufen, sodass Sie das Verhalten für Ihre eigenen Klassen definieren können.
Ja, alle obigen Antworten sind korrekt.
Obwohl Sie exotischere Anwendungsfälle für "|" finden könnten, wenn es sich um einen überladenen Operator handelt, der beispielsweise von einer Klasse verwendet wird,
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 diesem speziellen Anwendungsfall Pipe "|" Operator kann besser als Unix-Pipe-Operator gedacht werden. Ich stimme jedoch zu, dass bitweise Operatoren und Union Set-Operatoren weitaus häufigere Anwendungsfälle für "|" sind. in Python.
Es ist ein bitweises oder.
Die Dokumentation für alle Operatoren in Python finden Sie auf der Seite Index - Symbole der Python-Dokumentation.