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”。到底发生了什么。
答案 0 :(得分:3)
在实例方法中,第一个参数是实例本身。
在类方法中,第一个参数是类本身。
在您的情况下,您不是将该参数命名为self
或cls
(约定),而是将其命名为this
,work
,orr
和nott
。但无论参数的名称如何,他们都得到相同的论点。
您已成功将属性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
参数的名称无关紧要。重要的是参数指向的内容,它始终是实例或类