国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例

這篇具有很好參考價(jià)值的文章主要介紹了10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

今日內(nèi)容

  • 異常

  • 模塊和包

    • 導(dǎo)入模塊(導(dǎo)包)
    • if __name__ == "__main__":
  • Unitest 框架的學(xué)習(xí)

    • 了解, 基本組成

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端

異常

異常傳遞[了解]

 
 
 
異常傳遞是 Python 中已經(jīng)實(shí)現(xiàn)好了,我們不需要操作, 我們知道異常會(huì)進(jìn)行傳遞.
?
異常傳遞: 在函數(shù)嵌套調(diào)用的過(guò)程中, 被調(diào)用的函數(shù) ,發(fā)生了異常,如果沒有捕獲,會(huì)將這個(gè)異常向外層傳遞. .... 如果傳到最外層還沒有捕獲,才報(bào)錯(cuò)

模塊和包

 
 
 
1. Python 源代碼文件就是一個(gè)模塊
2. 模塊中定義的變量 函數(shù) 類,都可以讓別人使用,同樣,可以使用別人定義的(好處: 別人定義好的不需要我們?cè)俅螘鴮?直接使用即可)
3. 想要使用 別人的模塊中的內(nèi)容工具(變量, 類, 函數(shù)), 必須先導(dǎo)入模塊 才可以
4. 我們自己寫的代碼,想要作為模塊使用,代碼的名字需要滿足標(biāo)識(shí)符的規(guī)則(由數(shù)字,字母下劃線組成,不能以數(shù)字開頭)

導(dǎo)入模塊的語(yǔ)法

方式一
 
 
 
import 模塊名
# 使用模塊中的內(nèi)容
模塊名.工具名
?
# 舉例
import random
import json
random.randint(a, b)
json.load()
json.dump()
方式二
 
 
 
from 模塊名 import 工具名
# 使用
工具名 ?# 如果是函數(shù)和類需要加括號(hào)
?
# 舉例
from random import randint
from json import load, dump
randint(a, b)
load()
dump()

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端

方式三 [了解] 基本不用
 
 
 
from 模塊名 import * ?# 將模塊中所有的內(nèi)容都導(dǎo)入
?
from random import *
from json import *
?
randint(a, b)
load()
dump()
 
 
 
# 方式一 重點(diǎn)記憶
# import random
#
# print(random.randint(1, 20))
?
# 方式二, 重要快捷方式導(dǎo)包
# from random import randint
# from random import randint
#
# print(randint(1, 20))
?
# 方式三, 問題: 可能存在多個(gè)模塊中有相同的名字的工具, 會(huì)產(chǎn)生沖突
from random import *
?
print(randint(1, 20))
?
 
 
 
對(duì)于導(dǎo)入的模塊和工具可以使用 as 關(guān)鍵字給其起別名
注意: 如果起別名,原來(lái)的名字就不能用了, 只能使用別名

模塊的查找順序

 
 
 
在導(dǎo)入模塊的時(shí)候 會(huì)先在當(dāng)前目錄中找模塊, 如果找到,就直接使用
如果沒有找到回去系統(tǒng)的目錄中進(jìn)行查找, 找到,直接使用
沒有找到, 報(bào)錯(cuò)
?
注意點(diǎn):
定義代碼文件的時(shí)候, 你的代碼名字不能和你要導(dǎo)入的模塊名字相同

__name__?的作用

 
 
 
1. 每個(gè)代碼文件都是一個(gè)模塊
2. 在導(dǎo)入模塊的時(shí)候, 會(huì)執(zhí)行模塊中的代碼(三種方法都會(huì))
3. __name__ 變量
3.1 __name__ 變量 是 python 解釋器自動(dòng)維護(hù)的變量
3.2 __name__ 變量,如果代碼是直接運(yùn)行, 值是 "__main__"
3.3 __name__ 變量, 如果代碼是被導(dǎo)入執(zhí)行, 值是 模塊名(即代碼文件名)
?
在代碼文件中, 在被導(dǎo)入時(shí)不想被執(zhí)行的代碼,可以寫在 if __name__ == "__main__": 代碼的縮進(jìn)中

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端

代碼練習(xí)

 
 
 
1. 定義一個(gè)模塊 tools.py 
2. 在模塊中定義一個(gè)函數(shù), func, 輸出 '我是 tools 模塊中的 funn 函數(shù)'
3. 在模塊中定義一個(gè)類, Dog, 具有屬性 name, age, 方法 play, 輸出 'xx 在快樂的玩耍'
4. 新建一個(gè)代碼文件, 調(diào)用 tools 模塊中的 func 函數(shù) 并創(chuàng)建一個(gè) Dog 類的對(duì)象, 調(diào)用 play 方法

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端

包(package)

 
 
 
在 Python 中, 包 是一個(gè)目錄, 只不過(guò)在這個(gè)目錄存在一個(gè)文件 __init__.py(可以是空的)
將功能相近或者相似的代碼放在一起的.
?
--------
在 Python 中使用的時(shí)候,不需要可以是區(qū)分是包還是模塊, 使用方式是一樣的
?
random 模塊 (單個(gè)代碼文件)
json ?包(目錄)
unittest 包(目錄)
?
1. import 包名
2. alt ?回車 快捷導(dǎo)入

UnitTest框架

介紹

  • 框架

      
     
    說(shuō)明:
    1. 框架英文單詞framework 2. 為解決一類事情的功能集合
    ?
    > 需要按照框架的規(guī)定(套路) 去書寫代碼
  • 什么是UnitTest框架?

      
     
    概念:UnitTest是Python自帶的一個(gè)單元測(cè)試框架,用它來(lái)做單元測(cè)試。
    ----
    自帶的框架(官方): 不需要單外安裝, 只要安裝了 Python,就可以使用
    random, json, os, time
    第三方框架: 想要使用 需要先安裝后使用(pytest)
    selenium , appium, requests 
    ?
    ----
    單元測(cè)試框架: 主要用來(lái)做單元測(cè)試, 一般單元測(cè)試是開發(fā)做的.
    對(duì)于測(cè)試來(lái)說(shuō), unittest 框架的作用是 自動(dòng)化腳本(用例代碼) 執(zhí)行框架(使用 unittest 框架 來(lái) 管理 運(yùn)行 多個(gè)測(cè)試用例的)
  • 為什么使用UnitTest框架?

      
     
    1. 能夠組織多個(gè)用例去執(zhí)行 
    2. 提供豐富的斷言方法(讓程序代碼代替人工自動(dòng)的判斷預(yù)期結(jié)果和實(shí)際結(jié)果是否相符)
    3. 能夠生成測(cè)試報(bào)告
  • UnitTest核心要素(unitest 的組成部分)

    1. TestCase(最核心的模塊)

        
       
      TestCase(測(cè)試用例), 注意這個(gè)測(cè)試用例是 unittest 框架的組成部分, 不是手工和自動(dòng)化中我們所說(shuō)的用例(Test Case)
      ?
      主要作用: 每個(gè) TestCase(測(cè)試用例) 都是一個(gè)代碼文件, ?在這個(gè)代碼文件中 ?來(lái)書寫 真正的用例代碼
    2. TestSuite

        
       
      TestSuite(測(cè)試套件), 用來(lái) 管理 組裝(打包)多個(gè) TestCase(測(cè)試用例) 的
    3. TestRunner

        
       
      TestRunner(測(cè)試執(zhí)行,測(cè)試運(yùn)行), ?用來(lái) 執(zhí)行 TestSuite(測(cè)試套件)的
    4. TestLoader

        
       
      TestLoader(測(cè)試加載), 功能是對(duì) TestSuite(測(cè)試套件) 功能的補(bǔ)充,
      管理 組裝(打包)多個(gè) TestCase(測(cè)試用例) 的
    5. Fixture

        
       
      Fixture(測(cè)試夾具), 書寫在 TestCase(測(cè)試用例) 代碼中, 是一個(gè)代碼結(jié)構(gòu), 可以在每個(gè)方法執(zhí)行前后都會(huì)執(zhí)行的內(nèi)容
      ?
      舉例: 
      登錄的測(cè)試用例, 每個(gè)用例中重復(fù)的代碼就可以寫在 Fixture 代碼結(jié)構(gòu)中, 只寫一遍, 但每次用例方法的執(zhí)行,都會(huì)執(zhí)行 Fixture 中的代碼
      1. 打開瀏覽器
      2. 輸入網(wǎng)址
      ?

TestCase(測(cè)試用例)

 
 
 
1. 是一個(gè)代碼文件, 在代碼文件中 來(lái)書寫真正的用例代碼
2. 代碼文件的名字必須按照標(biāo)識(shí)符的規(guī)則來(lái)書寫(可以將代碼的作用在文件的開頭使用注釋說(shuō)明)
  • 步驟

      
     
    1. 導(dǎo)包 (unittest)
    2. 自定義測(cè)試類
    3. 在測(cè)試類中書寫測(cè)試方法
    4. 執(zhí)行用例
  • 代碼

      
     
    """
    代碼的目的: 學(xué)習(xí) TestCase(測(cè)試用例)模塊的書寫方法
    """
    # 1, 導(dǎo)包
    import unittest
    ?
    ?
    # 2, 自定義測(cè)試類, 需要繼承 unittest 模塊中的 TestCase 類即可
    class TestDemo(unittest.TestCase):
     ? ?# 3, 書寫測(cè)試方法, 即 用例代碼. 目前沒有真正的用例代碼, 使用 print 代替
     ? ?# 書寫要求, 測(cè)試方法 必須以 test_ 開頭(本質(zhì)是以 test 開頭)
     ? ?def test_method1(self):
     ? ? ? ?print('測(cè)試方法 1')
    ?
     ? ?def test_method2(self):
     ? ? ? ?print('測(cè)試方法 2')
    ?
    ?
    # 4, 執(zhí)行用例(方法)
    # 4.1 將光標(biāo)放在 類名的后邊 運(yùn)行, 會(huì)執(zhí)行類中的所有的測(cè)試方法
    # 4.2 將光標(biāo)放在 方法名的后邊 運(yùn)行, 只執(zhí)行當(dāng)前的方法
    ?
    問題一 代碼文件的命名不規(guī)范
      
     
    1. 代碼文件的名字以數(shù)字開頭 
    2. 代碼文件名字中有空格
    3. 代碼文件名字有中文
    4. 其他的特殊符號(hào)
    (數(shù)字, 字母, 下劃線組成, 不能以數(shù)字開頭)
    10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端
問題 2 代碼運(yùn)行沒有結(jié)果
 
 
 
右鍵運(yùn)行沒有 unittests for 的提示, 出現(xiàn)的問題
解決方案:
方案1. 重新新建一個(gè)代碼文件, 將寫好的代碼復(fù)制進(jìn)去
方案2. 刪除已有的運(yùn)行方式

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端

問題 3 沒有找到用例
 
 
 
測(cè)試方法中不是以 test_ 開頭的, 或者單詞寫錯(cuò)了

TestSuite & TestRunner

 
 
 
TestSuite(測(cè)試套件): 管理 打包 組裝 TestCase(測(cè)試用例) 文件的
TestRunner(測(cè)試執(zhí)行): 執(zhí)行 TestSuite(套件)
  • 步驟

      
     
    1. 導(dǎo)包(unittest)
    2. 實(shí)例化(創(chuàng)建對(duì)象)套件對(duì)象
    3. 使用套件對(duì)象添加用例方法
    4. 實(shí)例化運(yùn)行對(duì)象
    5. 使用運(yùn)行對(duì)象去執(zhí)行套件對(duì)象
  • 代碼

      
     
    TestSuite(測(cè)試套件): 是用來(lái)管理多個(gè) TestCase(測(cè)試用例) 的,
    先創(chuàng)建多個(gè) TestCase(測(cè)試用例) 文件
      
     
    """
    學(xué)習(xí) TestSuite 和 TestRunner 的使用
    """
    # 1. 導(dǎo)包(unittest)
    import unittest
    from hm_07_testcase1 import TestDemo1
    from hm_07_testcase2 import TestDemo2
    ?
    # 2. 實(shí)例化(創(chuàng)建對(duì)象)套件對(duì)象,
    suite = unittest.TestSuite()
    # 3. 使用套件對(duì)象添加用例方法
    # 方式一, 套件對(duì)象.addTest(測(cè)試類名('方法名')) ? # 建議測(cè)試類名和方法名直接去復(fù)制,不要手寫
    suite.addTest(TestDemo1('test_method1'))
    suite.addTest(TestDemo1('test_method2'))
    suite.addTest(TestDemo2('test_method1'))
    suite.addTest(TestDemo2('test_method2'))
    ?
    # 4. 實(shí)例化運(yùn)行對(duì)象
    runner = unittest.TextTestRunner()
    # 5. 使用運(yùn)行對(duì)象去執(zhí)行套件對(duì)象
    # 運(yùn)行對(duì)象.run(套件對(duì)象)
    runner.run(suite)
    ?
      
     
    """
    學(xué)習(xí) TestSuite 和 TestRunner 的使用
    """
    # 1. 導(dǎo)包(unittest)
    import unittest
    # 2. 實(shí)例化(創(chuàng)建對(duì)象)套件對(duì)象,
    from hm_07_testcase1 import TestDemo1
    from hm_07_testcase2 import TestDemo2
    ?
    suite = unittest.TestSuite()
    # 3. 使用套件對(duì)象添加用例方法
    # 方式二 將一個(gè)測(cè)試類中的所有方法進(jìn)行添加
    # 套件對(duì)象.addTest(unittest.makeSuite(測(cè)試類名))
    # 缺點(diǎn): makeSuite()  不會(huì)提示
    suite.addTest(unittest.makeSuite(TestDemo1))
    suite.addTest(unittest.makeSuite(TestDemo2))
    ?
    # 4. 實(shí)例化運(yùn)行對(duì)象
    runner = unittest.TextTestRunner()
    # 5. 使用運(yùn)行對(duì)象去執(zhí)行套件對(duì)象
    # 運(yùn)行對(duì)象.run(套件對(duì)象)
    runner.run(suite)
    ?

10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例,Python教程,# 帶你10天玩轉(zhuǎn)python,python,java,前端文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-766461.html

練習(xí)

 
 
 
1. 在 tools 模塊中定義 add 函數(shù), 對(duì)兩個(gè)數(shù)字進(jìn)行求和計(jì)算
2. 書寫 TestCase 代碼對(duì) add() 進(jìn)行測(cè)試 
用例 1: ?1, 2, 3
用例 2: ?10, 20, 30
用例 3: ?2, 3, 5
  • 用例代碼
 
 
 
"""案例練習(xí)"""
# 1,導(dǎo)包
import unittest
from tools import add
?
# 2, 自定義測(cè)試類
?
?
class TestAdd(unittest.TestCase):
 ? ?# 3. 書寫測(cè)試方法, 就是測(cè)試用例代碼
 ? ?def test_method1(self):
 ? ? ? ?# 1, 2, 3 判斷實(shí)際結(jié)果和預(yù)期結(jié)果是否相符
 ? ? ? ?if add(1, 2) == 3:
 ? ? ? ? ? ?print('測(cè)試通過(guò)')
 ? ? ? ?else:
 ? ? ? ? ? ?print('測(cè)試不通過(guò)')
?
 ? ?def test_method2(self):
 ? ? ? ?if add(10, 20) == 30:
 ? ? ? ? ? ?print('測(cè)試通過(guò)')
 ? ? ? ?else:
 ? ? ? ? ? ?print('測(cè)試不通過(guò)')
?
 ? ?def test_method3(self):
 ? ? ? ?# 1, 2, 3 判斷實(shí)際結(jié)果和預(yù)期結(jié)果是否相符
 ? ? ? ?if add(2, 3) == 5:
 ? ? ? ? ? ?print('測(cè)試通過(guò)')
 ? ? ? ?else:
 ? ? ? ? ? ?print('測(cè)試不通過(guò)')
?
  • 套件和執(zhí)行的代碼
 
 
 
import unittest
?
# 實(shí)例化套件對(duì)象
from hm_08_test import TestAdd
?
suite = unittest.TestSuite()
# 添加測(cè)試方法
suite.addTest(unittest.makeSuite(TestAdd))
# 實(shí)例化執(zhí)行對(duì)象
runner = unittest.TextTestRunner()
runner.run(suite)

到了這里,關(guān)于10天玩轉(zhuǎn)Python第9天:python 面向?qū)ο?全面詳解與代碼示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包