I have been into this "quirk" again, today. You have probably no idea if you didn't encounter it yourself before.
The current implementation keeps an array of integer objects for all integers between -5 and 256, when you create an int in that range you actually just get back a reference to the existing object. So it should be possible to change the value of 1. I suspect the behaviour of Python in this case is undefined. :-) ref.
Have a look at Python3 docs and see the stackoverflow discussions to learn more.
And, please be safe with the small integers.
==
tests if they are equal, andis
is testing if they are the same object.They are the same value so
==
succeeds, but they are not the same reference sois
fails.Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
That can really cause some confusion. :)
Using
is
and testing with small integers, only to later find out it fails with larger values.Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You should only use is with None. For there is and can only ever be one object of type NoneType. If a routine may return None, we know it isthe same constant None object used everywhere in Python.
That is if a==None and b==None then a is b. However, no such identity should be assumed for values other than None.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Followed and voted for Witness: thanks @emrebeyler for all cool things you do!
Have a happy day! ;)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
very good idea.I also read your post.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I voted for you brother but never forget me when you will be a whale.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post has received a 24.81 % upvote from @boomerang.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
i vote you as a witnesses. plz upvote my comment
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit