@classmethod的用法
今天学习python自动化脚本时遇到一个问题:setUp和tearDown,下面如果有几个测试方法就会调用几次。(如setUp设定为打开浏览器等功能,tearDown设定为关闭浏览器,下面有两个方法:账户错误,密码错误。那么每次都会重新打开很费时间)
这时,在setUp和tearDown方法上面添加@classmethod即:
@classmethod
def setUp(cls):
pass
@classmeth
def tearDown(cls):
pass
便只会打开一次。
那么会什么呢?我特意研究了下@classmethod的用法。
classmethod是一个修饰方法
class A():
x = 1
@classmethod
def B(cls):
print(cls.x)
A.B()
这里B是一个类方法,实例了一个cls。所以classmethod的方法的第一个函数必须是cls。cls就是A的一个实例,所以在B函数里面可以直接调用A的方法和参数。