为什么在逻辑上不应该在Python测试中使用它

时间:2014-02-27 18:38:39

标签: python nose

class TestUM:

    @classmethod
    def setup_class(will):
        """ Setup Class"""

        will.var = "TEST"

    def setup(this):
        """ Setup """

        print this.var

    def test_number(work):
        """ Method """

        print work.var


    def teardown(orr):
        """ Teardown """

        print orr.var

    @classmethod
    def teardown_class(nott):
        """ Teardown Class """

        print nott.var

将其作为

运行
  

nosetests -v -s test.py

我不是Python专家,但我无法弄清楚为什么上面的代码使用nose完美无缺。每个印刷品都打印“TEST”。到底发生了什么。

1 个答案:

答案 0 :(得分:3)

在实例方法中,第一个参数是实例本身。

在类方法中,第一个参数是类本身。

在您的情况下,您不是将该参数命名为selfcls(约定),而是将其命名为thisworkorrnott。但无论参数的名称如何,他们都得到相同的论点。

您已成功将属性var设置为"TEST",因此他们都能正确看到它。


不使用类的示例函数:

def test1(attribute):
    print attribute

def test2(name):
    print name

def test3(cls):
    print cls

def test4(self):
    print self

调用这些功能:

>>> test1('hello')
hello
>>> test2('hello')
hello
>>> test3('hello')
hello
>>> test4('hello')
hello

参数的名称无关紧要。重要的是参数指向的内容,它始终是实例或类