Stavo leggendo la 'risultato inatteso di operatore è' che avviene perché i numeri di cache Python tra -5 e 256.Python: Risultati diversi quando si usa PyCharm e IDLE/python
Questo è stato discusso qui: "is" operator behaves unexpectedly with integers
e qui: "is" and "id" in Python 3.5
Quando eseguo uno degli esempi riportati lì, ottengo risultati diversi tra Python stand-by e Python IDE (sto usando JetBrains PyCharm Professional edition - 5.0.4).
Quando si usa Python IDLE questo è il risultato:
a = 1000
b = 1000
print (a is b) # prints False
quando si utilizza PyCharm 5.0.4 questo è il risultato:
a = 1000
b = 1000
print (a is b) # prints True
come potrebbe essere? Ho ricontrollato, e Python-Interpreter del mio progetto è esattamente lo stesso in entrambi i casi (entrambi sono Python 3.5.1). Non sono sicuro che sia qualcosa che ho fatto di sbagliato, e speravo che qualcuno potesse spiegarlo.
Edit:
So 'a' è 'b' == true se e solo se id (a) == id (b), e che si può controllare come alcuni di voi menzionato nei commenti . Forse avrei dovuto essere più chiaro, quello che non capisco è come potrebbe essere che un IDE ha un comportamento diverso? Ho pensato (e per favore, correggimi, come mi sembra di essere sbagliato) che un IDE è solo un ambiente user-friendly che utilizza compilatori/interpreti esterni, ed è per questo che questi sono indipendenti da quegli IDE (per esempio, pycharm supporta non solo Python, e ho potuto eseguire Eclipse con compilatore C o Java, ecc (i quali non sono parti del IDE)
Grazie, Alon
Grazie! Questo è quello che mancava. – Alonbs