At a loss on python scoping.

Terry Reedy tjreedy at
Tue Mar 26 08:19:17 CET 2013

On 3/26/2013 2:17 AM, Shiyao Ma wrote:
> Hi,
> suppose I have a file like this:
> class A:
>      r = 5
>      def func(self, s):
>          self.s = s
> a = A()
> print(a.r)    # this should print 5, but where does py store the name of r
> a.func(3)
> print(a.s)    # this should print 3, also where does py store this name.
> what's the underlying difference between the above example?

For CPython, both the class A and the instance a have a .__dict__ 
attribute that stores names and values. But that is intended to be 
hidden and transparent  for normal usage.

Terry Jan Reedy

More information about the Python-list mailing list