Okay, I'll try and be extremely clear this time.
class Yes:
def __init__(self):
self.a=1
def yes(self):
if self.a==1:
print "Yes"
else:
print "No, but yes"
class No(Yes):
def no(self):
if self.a==1:
print "No"
else:
print "Yes, but no"
self.a-=1 #Note this line
Now, while running:
Yes().yes()
No().no()
Yes().yes()
No().no()
I want it to print out:
Yes
No
No, but yes
Yes, but no
It gives me:
Yes
No
Yes
No
Now, I know the reason why is because I'm only changing the value of Self.a in the No class(Remember that line?). I want to know if there is anyway to change it in the Yes class while still in the No class (like if there was something that I could plug in in place of the self.a-=1 that would work).
I'm not sure what possible use you have for this, but...
You want to manipulate a class variable, but you keep addressing instance variables. If you want a class variable, use a class variable!
It appears what you want to use is a static variable rather than an instance variable. A static variable is shared between all the instances of the class.
Will output: