I understand that calling getrefcount() copies reference by value into the function's argument, temporarily bumping up the object's reference count. This is where the second reference comes from.
However, when I run the following code I am getting reference count value of 33
import sys
a1 = 5
print(sys.getrefcount(a1))
I was expecting an output of 2 but it is printing 33
5 is one of the small integers CPython caches. Every value that happens to be 5 thus points to the same instance. Change it to, for example, a1 = 5000 and you'll see it print 2 as expected.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With