Verwendung ist und == in Python

Ich bin erst seit ungefähr einem Jahr in Python, aber mir wurde klar, dass ich nicht klar zwischen den Vergleichsoperatoren "is" und "==" unterscheiden konnte. Beschrieben als ein Gebot für mich.

1. Organisieren

is ist Objektidentität == ist Objektgleichheit

Ist. Wie der Name schon sagt, bestimmt die Objektidentität, ob es sich um dasselbe Objekt handelt.

Andererseits hat == die gleiche Implementierung wie die Methode eq`. Beispielsweise wird bestimmt, ob die Zeichenfolgen auch zwischen verschiedenen Objekten übereinstimmen oder nicht. https://docs.python.org/3/reference/datamodel.html#object.eq

a = 'hoge'

print(a.__eq__('hoge'))  # True
  1. Usage
a = None

if a == None:
    print('Not good')

Wenn es andererseits mit PEP8 übereinstimmt, wird Folgendes alarmiert. E711 comparison to None should be 'if cond is Nond:'

Dies besagt, dass für Singletons wie None die Identität in Object Identity verglichen werden sollte. Daher ist es wünschenswert, wie folgt zu schreiben.

a = None

if a is None:
    print('Good')

Wenn jedoch nicht eindeutig angegeben werden muss, dass es sich um None handelt, ist ↓ Pythonic. (3. Ich habe auch nebenbei geschrieben)

a = None

if not a:
    print('Good')

Wenn beispielsweise "is" für den unten gezeigten Zeichenfolgenvergleich verwendet wird, kann dies nicht ordnungsgemäß ausgewertet werden. Wenn Sie einen Vergleich durchführen möchten, z. B. übereinstimmende Zeichenfolgen, müssen Sie == verwenden. (Auch beim Vergleich von Zeichenfolgen sollten Sie auf Unicode oder str achten.)

a = 'hoghoge'

if a is 'hogehoge':
    print('This is not called!')
else:
    print('This is called!')

3. Nebenbei

if a:

Die if-Klausel wird auch häufig in Python verwendet.

das ist,

if a is not None:

Im Gegensatz zu a,

Es bedeutet, dass es sich von jedem unterscheidet.

Wenn es besser ist, einen expliziten Vergleich mit diesen anzustellen,

wenn a nicht <Vergleichsziel> ist:

Wenn nicht,

if a:

OK.

4. Zusammenfassung

Stellen Sie sicher, dass Sie die Verwendung verstehen und den richtigen Pythonic-Code schreiben.

Recommended Posts

Verwendung ist und == in Python
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So installieren und verwenden Sie pandas_datareader [Python]
Python: Verwendung von Einheimischen () und Globalen ()
Verwendung von Python zip und Aufzählung
Verwendung regulärer Ausdrücke in Python
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
So generieren Sie eine Sequenz in Python und C ++
python3: Verwendung der Flasche (2)
[Python] Verwendung von Liste 1
Verwendung der Python-Bildbibliothek in der Python3-Serie
Verwendung von Funktionen in separaten Dateien Perl-Version und Python-Version
Zusammenfassung der Verwendung von MNIST mit Python
Wie benutzt man Python Argparse?
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Wie man tkinter mit Python in Pyenv benutzt
[Python] Verwendung von Hash-Funktion und Taple.
Wie man in Python entwickelt
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
Verwendung von Python-Bytes
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
[Python] [Django] Verwendung des Auswahlfelds und Hinzufügen von Optionen
[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
Ich habe versucht zusammenzufassen, wie man Pandas von Python benutzt
Wie man Decorator in Django benutzt und wie man es macht
[Python] Wie man PCA mit Python macht
Python: So verwenden Sie Async mit
Unterschied zwischen == und ist in Python
Verwenden Sie Stoff wie in Python (Stoff3)
So installieren und verwenden Sie Tesseract-OCR
Verwendung von Klassen in Theano
[Python] Verwendung der Pandas-Serie
So sammeln Sie Bilder in Python
Verwendung von Anfragen (Python Library)
Verwendung von .bash_profile und .bashrc
So installieren und verwenden Sie Graphviz
[Python] Verwendung von Liste 3 Hinzugefügt
Verwendung der Python-API von OpenPose
Python: Verwendung von pydub (Wiedergabe)
Verwendung der Zip-Funktion von Python
Umgang mit Japanisch mit Python
[Python] Verwendung der Typetalk-API
So testen Sie, ob die Ausnahme in Python unittest ausgelöst wird
So tauschen Sie Elemente in einem Array in Python aus und wie kehren Sie ein Array um.
Verwendung der Methode __call__ in der Python-Klasse
Wie Sie pyenv und pyenv-virtualenv auf Ihre eigene Weise verwenden
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Erstellen und Verwenden von statischen / dynamischen Bibliotheken in C-Sprache
Ausführen externer Shell-Skripte und -Befehle in Python