Python: Resultados diferentes ao usar PyCharm e IDLE / python
Eu estava lendo sobre o 'resultado inesperado do operador is', que acontece porque os números de cache do Python estão entre -5 e 256.
Isso foi discutido aqui:O operador "is" se comporta inesperadamente com números inteiros
e aqui:"is" e "id" no Python 3.5
Quando executo um dos exemplos apresentados, obtenho resultados diferentes entre o Python Idle e o Python IDE (estou usando o Jetbrains Pycharm professional edition - 5.0.4).
Ao usar o Python IDLE, este é o resultado:
a = 1000
b = 1000
print (a is b) # prints False
ao usar o Pycharm 5.0.4, este é o resultado:
a = 1000
b = 1000
print (a is b) # prints True
como poderia ser isso? Voltei a verificar e o Python-Interpreter do meu projeto é exatamente o mesmo nos dois casos (ambos são o Python 3.5.1). Não tenho certeza se isso é algo que eu fiz de errado, e eu esperava que alguém pudesse explicar isso.
Editar:
Eu sei que 'a' é 'b' == true iff id (a) == id (b), e que você pode verificá-lo como alguns de vocês mencionaram nos comentários. Talvez eu devesse ter sido mais claro, o que não entendo é como é possível que um IDE tenha um comportamento diferente? Eu pensei (e por favor, corrija-me, pois parece que estou errado) que um IDE é apenas um ambiente amigável que usa compiladores / intérpretes externos, e é por isso que eles são independentes dos IDE (por exemplo, o pycharm suporta não apenas Python, e eu poderia executar o Eclipse com o compilador C ou Java etc. (todos os quais não fazem parte do IDE).
Obrigado, Alon.