If detailed description is needed, my suggesting is: """ The operators ``is`` and ``is not`` compare whether two objects are really the same object. Note that immutable objects having same value and type may be unified for efficiency. For example, ``'spam' is 'spam'`` is either ``True`` or ``False`` depending on Python implementation. Especially, singleton objects like ``True``, ``False``, ``None`` are always same object when thier type and value is same. """
This description may have to been splitted to separate paragraph. On Sat, Mar 5, 2011 at 1:14 PM, Fred Drake <fdr...@acm.org> wrote: > > On Fri, Mar 4, 2011 at 10:13 PM, Steven D'Aprano <st...@pearwood.info> wrote: > > The operators is and is not compare whether two objects are really the same > > object; this usually only matters for mutable objects like lists, or for > > testing against singletons like None. > > I think having text about mutability here is confusing. Consider: > > >>> x = [] > >>> a = x, > >>> b = x, > > Here, a and b are different immutable objects, though they'll always > be equal. "is" and "==" will produce different results; whether that > matters is context-dependent. "==" will always return the *same* > result as the list in x is mutated. > > Further: > > >>> c = [], > >>> d = [], > > c and d are different objects, and their equality will vary as the > contained lists are mutated. > > a, b, c and d are all immutable. > > So let's not condition the explanation with vague hints about when > testing identity makes sense. I expect it will lead to more confusion > than it will avoid. > > > -Fred > > -- > Fred L. Drake, Jr. <fdrake at acm.org> > "A storm broke loose in my mind." --Albert Einstein > _______________________________________________ > Doc-SIG maillist - Doc-SIG@python.org > http://mail.python.org/mailman/listinfo/doc-sig -- INADA Naoki <songofaca...@gmail.com> _______________________________________________ Doc-SIG maillist - Doc-SIG@python.org http://mail.python.org/mailman/listinfo/doc-sig