Python:添加到 setUp 中的 class 变量未按预期工作

Python: Adding to class variable in setUp not working as expected

class TestHead(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.num = 0

    def setUp(self):
        self.num += 1

    def test1(self):
        print self.num

    def test2(self):
        print self.num

输出:

1
1

我不明白。每次测试后 setUp 应该是 运行 并且它所做的只是增加 self.num 不应该是

1
2

在 python 中,class 变量在创建时被实例变量隐藏 - 因此 self.num 是由 class 值初始化的实例变量。您可以访问 TestHead.num 以获得 class 单例。