News for hackers. Stuff that matters.
Re:The PEPs of Python 3.9 by kgm on Thursday May 28, 2020 @10:26PM (#23345689)
Though "when" the object is created isn't always so straightforward:

  >>> x = 257
  >>> y = 257
  >>> x is y
  False
  >>> def f():
  ...     x = 257
  ...     y = 257
  ...     return x is y
  ...
  >>> f()
  True
The lesson being that `is` is essentially meaningless for immutable objects, and to always use `==`.
Re:The PEPs of Python 3.9 by pansa2 on Thursday May 28, 2020 @10:39PM (#23345759)
> `is` is essentially meaningless for immutable objects

OTOH it’s recommended to use `is` rather than `==` when comparing to “singletons like `None`”.

https://www.python.org/dev/peps/pep-0008/#programming-recomm...

Re:The PEPs of Python 3.9 by joppy on Friday May 29, 2020 @01:52AM (#23346659)
What is the rationale behind this? '==' works all the time, and 'is' only works sometimes. Using 'is' wherever possible requires the user to know some rather arbitrary language details (which objects are singletons and which are not), wheras '==' will always give the correct answer regardless.
Re:The PEPs of Python 3.9 by pansa2 on Friday May 29, 2020 @02:41AM (#23346917)
Classes can overload `==`:

    class C:
        def __eq__(self, other):
            return True

    print(C() == None)  # True
    print(C() is None)  # False