Sahithyan's S1 — Programming Fundamentals
Interning
Interning is re-using objects of equal value on-demand instead of creating new objects. This is done for memory efficiency. Frequently used for numbers and strings in different programming languages.
a = 120b = 120
print(a is b) # True
c = 2000d = 2000
print(c is d) # False
In the above code, 120
is intered by the Python interpreter but not 2000
.
Python’s integer interning is done only for numbers in the range: [-5, 256]
Python interpreter also interns small strings.
a = "abcd"b = "abcd"
print(a is b) # True
# Both text are the samec = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur perferendis iste ipsa natus placeat. Nostrum quia maiores voluptatem dolor. Alias, laborum deleniti molestias, impedit atque tempore animi culpa fugiat iste illo doloremque debitis ut quibusdam ipsa, aliquam accusantium. Porro architecto non, excepturi minima magnam sunt iusto culpa voluptas reiciendis pariatur nobis maxime laudantium quod, aspernatur harum dolor unde eveniet tempora laboriosam consectetur delectus dolores vero ad quaerat. Excepturi libero, quo nulla amet unde suscipit praesentium harum tempora sunt dolorem ipsam, modi beatae nesciunt illo fuga esse totam debitis repellendus dignissimos molestiae, aliquam quod quam mollitia. In optio eum odit temporibus."d = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur perferendis iste ipsa natus placeat. Nostrum quia maiores voluptatem dolor. Alias, laborum deleniti molestias, impedit atque tempore animi culpa fugiat iste illo doloremque debitis ut quibusdam ipsa, aliquam accusantium. Porro architecto non, excepturi minima magnam sunt iusto culpa voluptas reiciendis pariatur nobis maxime laudantium quod, aspernatur harum dolor unde eveniet tempora laboriosam consectetur delectus dolores vero ad quaerat. Excepturi libero, quo nulla amet unde suscipit praesentium harum tempora sunt dolorem ipsam, modi beatae nesciunt illo fuga esse totam debitis repellendus dignissimos molestiae, aliquam quod quam mollitia. In optio eum odit temporibus."
print(c is d) # False
Strings in python can be manually interned using sys.intern
function.
a,b=8,8c=8d=8
Likewise, in the above code, only 1 integer object is created.