it-swarm.com.de

Pipe-Zeichen in Python

Ich sehe ein "Pipe" -Zeichen (|) wird in einem Funktionsaufruf verwendet:

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

Was bedeutet die Pipe in ax|bx?

62
alwbtc

Es ist ein bitweises ODER von ganzen Zahlen. Wenn beispielsweise eines oder beide von ax oder bx1, dies ergibt 1, ansonsten zu 0. Es funktioniert auch mit anderen Ganzzahlen, zum Beispiel 15 | 128 = 143, d. h. 00001111 | 10000000 = 10001111 in binär.

56
AhmetB - Google

Dies ist auch der Union-Set-Operator

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

Dies führt zu set([1, 2, 3])

103
gui11aume

Ja, alle Antworten oben sind richtig.

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 wird die Pipe "|" Operator kann besser als Unix-Pipe-Operator gedacht werden. Ich stimme jedoch zu, dass bitweise Operatoren und Vereinigungsmengenoperatoren häufigere Anwendungsfälle für "|" in Python.

10
Tagar