this works in the desired way:
class d: def __init__(self,arg): self.a = arg def p(self): print \"a= \",self.a x = d(1) y = d(2) x.p() y
When you remove the self's, you end up having only one variable called a that will be shared not only amongst all your d objects but also in your entire execution environment. You can't just eliminate the self's for this reason.
a
d