Cecilia Alm wrote: > Why does the identity operator return "True" in the below cases, that is > when assigning the same value to basic variable types (float, integer, > string, bool..)? Are these rcopied by reference (shallow)? If so why?
Assignment in Python is always by reference. Variables in Python are not containers for values, they are names for values. See http://effbot.org/zone/python-objects.htm In general it is a bad idea to use 'is'; for several reasons it can yield surprising results. == is usually a better choice. One exception is when comparing to a known singleton object, for example if a is None: is a good way to test for None. Kent > > >>> i = 10 > >>> j = 10 > >>> i is j > True > > > >>> a = 10 > >>> b = a > >>> a is b > True > > Thanks! > > > ------------------------------------------------------------------------ > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor