Comment utiliser is et == en Python

Je n'utilise Python que depuis environ un an maintenant, mais j'ai remarqué que je ne pouvais pas distinguer clairement les opérateurs de comparaison ʻiset==`. Décrit comme un commandement à moi-même.

1. Organisez

ʻIsest l'identité d'objet ==` est l'égalité d'objet

Est. Comme son nom l'indique, Object Identity détermine s'il s'agit du même objet.

D'un autre côté, == a la même implémentation que la méthode __eq__. Par exemple, il est déterminé si les chaînes de caractères correspondent ou non même entre différents objets. 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')

En revanche, s'il est conforme à PEP8, les suivants seront alertés. E711 comparison to None should be 'if cond is Nond:'

Cela dit que pour les singletons comme None, l'identité dans Object Identity doit être comparée. Par conséquent, il est souhaitable d'écrire comme suit.

a = None

if a is None:
    print('Good')

Cependant, s'il n'est pas nécessaire d'indiquer clairement qu'il s'agit de Aucun, ↓ est Pythonique. (3. J'ai aussi écrit en aparté)

a = None

if not a:
    print('Good')

De plus, par exemple, si ʻisest utilisé pour la comparaison de chaînes de caractères comme indiqué ci-dessous, il ne peut pas être évalué correctement. Si vous souhaitez effectuer une comparaison telle que des chaînes correspondantes, vous devez utiliser==`. (De plus, dans le cas de la comparaison de chaînes de caractères, vous devez également faire attention à l'unicode ou à str)

a = 'hoghoge'

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

3. Mis à part

if a:

La clause if est également souvent utilisée en Python.

c'est,

if a is not None:

Contrairement à un,

Cela signifie qu'il est différent de tout.

S'il vaut mieux faire une comparaison explicite avec ceux-ci,

ʻSi a n'est pas : `

Si non,

if a:

D'ACCORD.

4. Résumé

Assurez-vous de bien comprendre l'utilisation et d'écrire le code Pythonic correct.

Recommended Posts

Comment utiliser is et == en Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
[Introduction à Python] Comment utiliser la classe en Python?
Comment installer et utiliser pandas_datareader [Python]
python: Comment utiliser les locals () et globals ()
Comment utiliser le zip Python et énumérer
Comment utiliser les expressions régulières en Python
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Comment générer une séquence en Python et C ++
python3: Comment utiliser la bouteille (2)
[Python] Comment utiliser la liste 1
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment utiliser les fonctions dans des fichiers séparés version Perl et version Python
Résumé de l'utilisation de MNIST avec Python
Comment utiliser Python Argparse
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Comment utiliser tkinter avec python dans pyenv
[Python] Comment utiliser la fonction de hachage et taple.
Comment développer en Python
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Comment utiliser les octets Python
[Pour les débutants] Comment utiliser la commande say avec python!
[Python] [Django] Comment utiliser le champ de choix et comment ajouter des options
[Python] Comment trier un dict dans une liste et une instance dans une liste
J'ai essayé de résumer comment utiliser les pandas de python
Comment utiliser Decorator dans Django et comment le créer
[Python] Comment faire PCA avec Python
Python: comment utiliser async avec
Différence entre == et est en python
Utilisez le tissu tel quel en python (fabric3)
Comment installer et utiliser Tesseract-OCR
Comment utiliser les classes dans Theano
[Python] Comment utiliser la série Pandas
Comment collecter des images en Python
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser .bash_profile et .bashrc
Comment installer et utiliser Graphviz
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser l'API Python d'OpenPose
Python: Comment utiliser pydub (lecture)
Comment utiliser la fonction zip de python
Comment gérer le japonais avec Python
[Python] Comment utiliser l'API Typetalk
Comment tester cette exception est déclenchée dans python unittest
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
Comment utiliser la méthode __call__ dans la classe Python
Comment utiliser pyenv et pyenv-virtualenv à votre manière
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
Comment créer et utiliser des bibliothèques statiques / dynamiques en langage C
Comment exécuter des commandes et des scripts shell externes en python