更改实例变量

2023-11-24

我有这个代码:

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

现在,在运行时:

Yes().yes()
No().no()
Yes().yes()
No().no()

我希望它打印出来:

Yes
No
No, but yes
Yes, but no

它给了我:

Yes
No
Yes
No

我知道原因是我只是改变了self.a in the No班级。有什么方法可以在 Yes 类中更改它,同时仍在No类(就像我可以插入一些东西来代替self.a-=1那会起作用)?


我不确定你对此有什么用处,但是......

你想要操纵一个class变量,但您继续寻址实例变量。如果你想要一个类变量,就使用类变量!

class Yes:
    a = 1 # initialize class var.
    def __init__(self):
        self.a = 1 # point of this is what?

    def yes(self):
        if Yes.a==1: # check class var
            print "Yes"
        else:
            print "No, but yes"

class No(Yes):

    def no(self):
        if Yes.a==1: # check class var
            print "No"
        else:
            print "Yes, but no"
        Yes.a-=1 # alter class var
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改实例变量 的相关文章

随机推荐