class A:
def __init__ (self, an_int):
self.g = an_int
self.b = None
def add (self, an_int):
self.g += an_int + 1
class B:
def __init__ (self, an_int):
self.g = an_int
self.a = None
def subtract (self, an_int):
self.g -= an_int-1
a = A(0)
b = B(1)
def show (an_a_obj, a_b_obj):
print '%d %d' % (an_a_obj.g, a_b_obj.g)
现在,我这样做:
b.subtract(a.g)
show(a,b)
我得到的结果是0 2
,但我认为应该是:
0 0
但这绝对不是真的。我不明白的是这一部分:
def subtract (self, an_int):
self.g -= an_int-1
因此,a.g
被视为" an_int"然后取出,但作为什么?它根本不是全球性的,那么口译员怎么知道 a.g 必须 0 或者根本不知道呢?
self.g -= an_int - 1
做了什么?
我希望它的b.g(1) - 0(a.g) - 1 = 0,但口译员说它是-1
有人可以帮助我朝正确的方向发展吗?
答案 0 :(得分:1)
self.g -= an_int - 1
相当于self.g = self.g - (an_int - 1)
,即self.g = self.g + 1 - an_int
。由于您的示例中an_int
为0,因此self.g
增加1。