测试时候类的调用是经常会用到的。简单看下类的调用使用的方法吧。
来看例子:
目录结构:
我们现在要在do_class.py这个文件里调用class_learn.py里的类
代码(do_class.py):
- #!/usr/bin/env python3
- #coding=utf-8
- '''@Author:Jock'''
- from all_python_learn.class_and_funcation.class_learn import *
- b = Learn(1,2)
- b.get()
- print(Learn.a)
这里通过from导入了模块class_learn里的类,然后通过类的实例化实例了一个b的对象,然后通过对象b调用了类里的get函数。这里我加了个print(Learn.a)就是想说直接通过类名接上变量名可以调用类的变量。
运行结果:
如果我们不实例化直接调用会有什么结果呢?来看看
修改do_class.py为:
如果这么写那就报错了,因为没有实例化。
报错:
上面的例子是带传入参数的类,也可以有不带参数的类,然后被调用。
把class_learn.py改成下面:
在do_class.py就可以这么写:
运行结果:
通过上面的例子基本知道怎么去调用类里的函数、类里的变量了(这个非常重要,写用例时经常会跨文件去访问类里的属性!!)
但我估计你们在看了上面代码后对self比较疑惑,其实开始类的定义时有讲过,这个是必须写的,是类的实例。
例子里的初始化函数里的
- self.x=x #这里的x和y就是实例变量
- self.y=y
这是定义了两个变量x和y,并赋给实例self.x和self.y,在后面的所有函数中如果要用到这个两个变量,都需要通过self.x的写法来调用,并且函数的参数列表必须带有self,并且把实例传了进去。否则调用就会报错。