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