2009-01-06 13 views
7

This question initialement demandé (à tort) qu'est-ce que "|" signifie en Python, quand la question portait sur Django. Cette question a eu une réponse merveilleuse de Triptych que je veux préserver.Que signifie le signe "|" en Python?

+0

Bien essayé, mais quand vous faites la CW après, toutes les réponses sont CW aussi. –

+0

La case à cocher wiki communautaire est marquée par défaut, vous pouvez la désélectionner pour avoir une réponse wiki non communautaire –

+0

Cela ne devrait pas être un message CW. Ce n'est pas une "vraie" question car Vinko connaît probablement déjà la réponse. Mais c'est encore réel dans la mesure où il s'agit de programmation et les gens peuvent google pour cela et ainsi de suite. – Triptych

Répondre

17

En Python, l'opérateur '|' est défini par défaut sur les types et les types définis entiers.

Si les deux opérandes sont des entiers, alors il effectuera un bitwise or, ce qui est une opération mathématique.

Si les deux opérandes sont de type set, l'opérateur '|' renvoie l'union de deux ensembles.

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

De plus, les auteurs peuvent définir le comportement de l'opérateur pour les types personnalisés, donc si something.property est un objet défini par l'utilisateur, vous devez vérifier que la définition de classe pour une méthode __or__(), qui définira alors le comportement dans votre exemple de code.

Donc, il est impossible de vous donner une réponse précise sans connaître les types de données pour les deux opérandes, mais habituellement ce sera un bit ou bit.

0

Bitwise OU