web-dev-qa-db-fra.com

double égal vs est dans python

Je lance ce qui suit dans l’interprète Python:

>>> foo = 10
>>> dir(foo) == dir(10)
True
>>> dir(foo) is dir(10)
False
>>> 

Pourquoi est-ce?

73
ben

is vérifie que 2 arguments se rapportent au même objet, == vérifie que 2 arguments ont la même valeur. dir() renvoie un list qui contient les mêmes données pour foo et 10, mais les instances réelles de list pour les 2 choses sont différents.

135
Silas Ray