測試時候類的調用是經常會用到的。簡單看下類的調用使用的方法吧。
來看例子:
目錄結構:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2PnVGcq5yMtdHOmZzaj9Gavw1NxgDO5MjMtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.jpeg)
我們現在要在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,并且把執行個體傳了進去。否則調用就會報錯。