est-il une différence entre:Y at-il une différence entre "foo is None" et "foo == None"?
if foo is None: pass
et
if foo == None: pass
La convention que je l'ai vu dans la plupart du code Python (et le code que j'écris moi-même) est le premier, mais je suis récemment tombé à travers le code qui utilise ce dernier. None est une instance (et la seule instance, IIRC) de NoneType, donc cela ne devrait pas avoir d'importance, non? Y a-t-il des circonstances dans lesquelles cela pourrait être?
Vous pouvez vouloir ajouter que None est un singleton alors "None is None" est toujours True. –
Et vous pouvez ajouter que l'opérateur 'is' ne peut pas être personnalisé (surchargé par une classe définie par l'utilisateur). – martineau
Donc, dans votre cas, pourquoi le code "f == None" renvoie-t-il True? Confused ... – study