First of all many thanks to all for their detailed answers on subject. I really appreciate it!
> Correct. The global name is a reference, so the reference count will be > > at least 1. In fact, referencing the name from a function or method > doesn't increase the ref count: > -- > > Steven i have tried some tests, though accessing object from functions increase refcount but only temporary and only if object is used within function. i guess as soon as k is bound to string object latter's reference count will increase and function return results in unbound of k from object (according to output below). What is interesting if module namespace can be held accountable for 1 reference count what are remaining 3 references counted on string object referenced by 'p'? (CPython 3.3.2, windows 7, run from within eclipse/PyDev and same output on centos 6.5 for python v3.3.3) from sys import getrefcount p = "test script" print("refcnt before func() ", getrefcount(p)) def access_p1(): global p print("refcnt inside func1()", getrefcount(p)) def access_p2(): global p k = p print("refcnt inside func2()", getrefcount(p)) access_p1() access_p2() print("refcnt after func() ", getrefcount(p)) -------------------------------------------------------------- Output: refcnt before func() 4 refcnt inside func1() 4 refcnt inside func2() 5 refcnt after func() 4 -- https://mail.python.org/mailman/listinfo/python-list