How does python know?
Roy Smith
roy at panix.com
Wed Feb 12 20:54:23 EST 2014
In article <lFQKu.455927$cZ.440055 at fx31.iad>, Tobiah <toby at tobiah.org>
wrote:
> I do this:
>
> a = 'lasdfjlasdjflaksdjfl;akjsdf;kljasdl;kfjasl'
> b = 'lasdfjlasdjflaksdjfl;akjsdf;kljasdl;kfjasl'
>
> print
> print id(a)
> print id(b)
>
>
> And get this:
>
> True
> 140329184721376
> 140329184721376
>
>
> This works for longer strings. Does python
> compare a new string to every other string
> I've made in order to determine whether it
> needs to create a new object?
Yes[*]. It's called interning. See
https://en.wikipedia.org/wiki/Intern_(computer_science).
[*] Well, nothing requires Python to do that. Some implementations do.
Some don't. Some do it for certain types of strings. Your mileage may
vary.
More information about the Python-list
mailing list