为什么这段代码会返回零?

时间:2016-08-24 23:40:21

标签: python class

以下是我编写的一些简单的Python 2.6代码。代码按预期工作,除了我很好奇为什么在输出中返回零(0)?

非常感谢!

class One(object):
    def __init__(self):
        self.A = 0

    def Two(self, *args):
        for x in args:
            if x == 1:
                print x
        return self

    def answer(self):
        print (self.A)

ABC = One()
ABC.Two(1, 1, 9, 0, 7).answer()

输出

1
1
0
Process finished with exit code 0

1 个答案:

答案 0 :(得分:1)

也许如果你用不同的方式写它,你就会明白发生了什么:

class One(object):

    def __init__(self):
        self.A = 0

    def Two(self, *args):
        for x in args:
            if x == 1:
                print x
        return self

    def answer(self):
        print(self.A)

ABC = One()
ABC.Two(1, 1, 9, 0, 7)
print '-' * 80
ABC.answer()

如您所见,方法answer是返回零的方法,而不是方法Two