Vertikaler Balken im Python-Zuweisungsoperator

8

Es gibt einen Code und in der Klassenmethode gibt es eine Zeile:

%Vor%

Ich kann nicht verstehen, was es bedeutet. Ich habe (| =) in der Liste der grundlegenden Python-Operatoren nicht gefunden.

    
Olga 20.01.2014, 20:42
quelle

4 Antworten

15

Das ist ein bitwise or mit Zuweisung. Es ist äquivalent zu

%Vor%

Lesen Sie hier mehr .

    
Elliott Frisch 20.01.2014, 20:45
quelle
4

In Python ist | eine Abkürzung für den Aufruf der Methode __or__ des Objekts, wie in hier in der Dokumentation und in diesem Codebeispiel:

%Vor%

Lassen Sie uns sehen, was passiert, wenn Sie | operator mit diesem generischen Objekt verwenden.

%Vor%

Wie Sie sehen können, wurde die Methode __or__ aufgerufen. int , 'set', 'bool' haben alle eine Implementierung von __or__ . Für Zahlen und Boole ist es ein bitweises OR. Für Sets ist es eine Union. Abhängig vom Typ des Attributs oder der Variablen ist das Verhalten unterschiedlich. Viele der bitweisen Operatoren haben Äquivalente gesetzt, hier mehr .

    
Alejandro 30.06.2016 14:26
quelle
0

Für eine ganze Zahl würde dies der "bitweisen oder" Methode von Python entsprechen. Im folgenden Beispiel nehmen wir die bitweise oder von 4 und 1, um 5 zu erhalten (oder in binär 100 | 001 = 101):

%Vor%

Generalisierter (wie Alejandro sagt) ist die Methode oder eines Objekts, die für eine Klasse in folgender Form definiert werden kann:

%Vor%

Also rufen wir im speziellen Fall einer Ganzzahl die Methode oder auf, die in eine bitweise oder nach Python definierte Methode aufgelöst wird.

    
Sami Start 06.06.2017 15:47
quelle
0

Ich sollte hinzufügen, dass "bar-equals" jetzt (im Jahr 2018) am populärsten als ein Satz-Union-Operator verwendet wird, um Elemente an einen Satz anzuhängen, wenn sie noch nicht da sind.

%Vor%

Ein Anwendungsfall für die Verarbeitung in natürlicher Sprache ist beispielsweise das kombinierte Alphabet mehrerer Sprachen:

%Vor%     
russian_spy 13.02.2018 01:14
quelle

Tags und Links