gpt4 book ai didi

python - 改变实例变量

转载 作者:太空狗 更新时间:2023-10-30 00:26:39 27 4
gpt4 key购买 nike

好的,这次我会尽量说得非常清楚。

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

现在,我知道原因是因为我只更改了 No 类中 Self.a 的值(还记得那行吗?)。我想知道在 Yes 类中是否仍然可以在 No 类中更改它(就像我可以插入一些东西来代替 self.a-=1 那样行得通)。

最佳答案

我不确定您对此有何用途,但是...

您想操作一个 变量,但您一直在寻址实例变量。如果你想要一个类变量,就使用一个类变量!

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

关于python - 改变实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com