Python初學者手冊(14)
python初學者日記
1.儲存資料:json用法
json.jump()用來儲存數字列表,接受兩個實參:要儲存的資料以及可用於儲存資料的檔案物件。
json.load()將這個列表讀取到記憶體中。
例子1:
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = ‘numbers.json’ #通常使用副檔名.json來指出檔案儲存的資料為JSON格式
with open(filename, ‘w’) as f_obj:
json.dump(numbers, f_obj) #此處有縮排。使用函式json.dump() 將數字列表儲存到檔案numbers.json中
例子2:
import json
filename = ‘numbers.json’
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)
2.
程式碼的重構:
將程式碼劃分為 一系列完成具體工作的函式。這樣的過程被稱為重構。重構讓程式碼更清晰、更易於理解、更容 易擴充套件。
3.
要為函式編寫測試用例,可先匯入模組unittest以及要測試的函式,再建立一個繼承unittest.TestCase的類,並編寫一系列方法對函式行為的不同方面進行測試。 (Python標準庫中的模組unittest提供了程式碼測試工具)
例子:
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""建立 了一個名為NamesTestCase的類,用於包含一系列針對
get_formatted_name()的單元測試"""
#這個類必須繼承 unittest.TestCase類,這樣Python才知道如何執行你
#編寫的測試
def test_first_last_name(self):
#方法名必須以test_打頭,這樣它才 會在我們執行test_name_function.py
#時自動執行
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
#unittest類最有用的功能之一:一個斷言方法。斷言方法用來核實得到
#的結果是否與期望的結果一致。assertEqual()
unittest.main()
測試類6個常用的斷言方法。
方法 | 用途 |
---|---|
assertEqual(a, b) | 核實a == b |
assertNotEqual(a, b) | 核實a != b |
assertTrue(x) | 核實x為True |
assertFalse(x) | 核實x為False |
assertIn( item , list ) | 核實 item 在 list 中 |
assertNotIn( item , list ) | 核實 item 不在 list 中 |
檢測類:
import unittest
from survey import AnonymousSurvey
class TestAnonmyousSurvey(unittest.TestCase):
"""針對AnonymousSurvey類的測試"""
def test_store_single_response(self):
"""測試單個答案會被妥善地儲存"""
question = "What language did you first learn to speak?"
my_survey = AnonymousSurvey(question)
my_survey.store_response('English')
self.assertIn('English', my_survey.responses)
unittest.main()
方法setUp()
在前面的test_survey.py中,我們在每個測試方法中都建立了一個AnonymousSurvey例項,並在 每個方法中都建立了答案。unittest.TestCase類包含方法setUp(),讓我們只需建立這些物件一 次,並在每個測試方法中使用它們。如果你在TestCase類中包含了方法setUp(),Python將先執行 它,再執行各個以test_打頭的方法。
import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
"""針對AnonymousSurvey類的測試"""
def setUp(self):
# 建立一個調查物件和一組答案,供使用的測試方法使用
question = "What language did you first learn to speak?"
self.my_survey = AnonymousSurvey(question)
self.responses = ['English', 'Spanish', 'Mandarin']
def test_store_single_response(self):
"""測試單個答案會被妥善地儲存"""
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0], self.my_survey.responses)
def test_store_three_responses(self):
"""測試三個答案會被妥善地儲存"""
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response, self.my_survey.responses)
unittest.main()
方法setUp()做了兩件事情:建立一個調查物件;建立一個答案列表
相關文章
- 給Python初學者的最好練手專案Python
- 致 Python 初學者Python
- [python]初學者地址Python
- 緩衝區溢位攻擊初學者手冊(更新版)
- 初學者(14) (5千字)
- 致 Python 初學者們!Python
- 《給初學者的Windows Vista的補遺手冊》之081Windows
- python3.7-初學者-20Python
- Python初學者的17個技巧Python
- Node腳手架編寫初學者教程
- Python適合初學者學習嗎?Python
- Python初學者之網路爬蟲Python爬蟲
- python手冊Python
- 初學者指南
- 初學者 (轉)
- Python初學者需要注意的問題Python
- 給Python初學者的一些技巧Python
- Python 初學者容易踩的 5 個坑Python
- ChinaZip v2.0的註冊碼演算法(初學者)演算法
- Nginx初學者指南Nginx
- Groovy初學者指南
- 初學者的迷茫
- JavaScript初學者必看“this”JavaScript
- npm 初學者教程NPM
- java 初學者必看Java
- 初學者救教
- RMAN 初學者指南
- 初學者的想法
- 初學者Mybatis的初級使用MyBatis
- 初學者Python和C先學哪個好?Python
- Python PK C++,初學者該如何挑選?PythonC++
- Python和PHP初學者先學哪個好?PythonPHP
- 給初學者,因為我就是個初學者(3) (569字)
- 初學者學習python2還是python3?Python
- Python快速教程 (手冊)Python
- Python學習手冊Python
- Python初學者(零基礎學習Python、Python入門)Python
- 初學Python必備十大經典案例(初學者必看)❃✿❈❉❀❁下Python