2009-01-06 15 views
7

This question ursprünglich gefragt (falsch) was "|" meinen in Python, als die eigentliche Frage über Django war. Diese Frage hatte eine wunderbare Antwort von Triptychon, die ich bewahren möchte.Was bedeutet das Zeichen "|" in Python?

+0

Netter Versuch, aber wenn Sie die Post CW machen, alle Antworten sind auch CW. –

+0

Das Community-Wiki-Kontrollkästchen ist standardmäßig markiert. Sie können es deaktivieren, um eine Wiki-Antwort zu erhalten, die keine Community ist. –

+0

Dies sollte kein CW-Post sein. Es ist keine "echte" Frage, denn Vinko kennt die Antwort wahrscheinlich schon. Aber es ist immer noch real, dass es um Programmierung geht und die Leute können dafür googeln. – Triptych

Antwort

17

In Python, der '|' Operator wird standardmäßig auf Integer-Typen und Satztypen definiert.

Wenn die beiden Operanden Ganzzahlen sind, wird eine bitwise or ausgeführt, was eine mathematische Operation ist. Wenn die beiden Operanden set sind, gibt der Operator '|' die Vereinigung zweier Sätze zurück.

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

Zusätzlich können Autoren Operator Verhalten für benutzerdefinierte Typen definieren also, wenn something.property ein benutzerdefiniertes ist Objekt, sollen Sie diese Klassendefinition für eine __or__() Methode überprüfen, die dann das Verhalten im Code Probe definieren.

So ist es unmöglich, Ihnen eine genaue Antwort zu geben, ohne die Datentypen für die zwei Operanden zu kennen, aber normalerweise wird es ein bitweises oder sein.

0

bitweise OR