成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細說明Python 操作符風格

開發 后端
Python列為黑客應當學習的四種編程語言之一,并建議人們從Python開始學習編程,這款語言可以使對Python 操作符不熟悉的用戶可以充分接受。

調用方法會影響可讀性。盡管 assertEqual() 方法名能夠表明要測試兩個值是否相等,但是代碼看起來仍然不像是比較,對于熟悉Python 操作符的開發人員,不如 Python  操作符那么明確。

第二,正如在本系列的第三篇文章中將看到的,新的測試框架現在知道如何檢查 assert 語句,從而查明造成測試失敗的條件。這意味著簡單的 assert 語句現在能夠產生有意義的測試失敗消息。

它提供的信息與調用 assertEqual() 等老方法的結果差不多。***,即使 assertEqual() 仍然是必要的,但是從測試模塊導入這個函數(而不是通過類繼承讓函數可用)肯定更簡單,更符合 Python 操作符的風格。

實際上,在下面會看到,當 py.test 和 nose 要提供更多用來支持測試的例程時,它們只需把這些例程定義為函數,然后用戶可以把這些函數導入自己的代碼。當然,如果作者確實需要通過例程緩存狀。

  1. # nose.tools support functions for writing tests  
  2.  
  3. assert_almost_equal(first, second, places=7msg=None)  
  4. assert_almost_equals(first, second, places=7msg=None)  
  5. assert_equal(first, second, msg=None)  
  6. assert_equals(first, second, msg=None)  
  7. assert_false(expr, msg=None)  
  8. assert_not_almost_equal(first, second, places=7msg=None)  
  9. assert_not_almost_equals(first, second, places=7msg=None)  
  10. assert_not_equal(first, second, msg=None)  
  11. assert_not_equals(first, second, msg=None)  
  12. assert_true(expr, msg=None)  
  13. eq_(a, b, msg=None)  
  14. ok_(expr, msg=None

但是,如果程序員希望編寫簡單的測試代碼,不愿意考慮 doctest 涉及的亂七八糟的東西,那么測試函數是很好的方法。總之,測試函數可以極大地增強編寫測試的簡便性。程序員不需要記住、重寫或復制以前編寫的測試代碼,新的約定讓 Python 程序員能夠像編寫一般Python 操作符一樣編寫測試:只需打開一個空文件,然后輸入!

py.test 和 nose 框架都提供特殊的例程,這些例程可以簡化測試的編寫。可以認為它們分別提供一種方便的測試 “方言”,可以用這些 “方言” 編寫測試。這會簡化測試的編寫并減少錯誤,還會使測試更簡短、可讀性更好。

但是,使用這些例程還會導致一個重要的后果:您的測試與提供函數的框架捆綁在一起了,喪失了兼容性。因此,要權衡考慮方便性和兼容性。如果只使用笨拙的標準Python  操作符unittest 模塊從頭編寫所有測試,那么它們能夠在任何測試框架中運行。

更進一步,如果采用簡單的做法編寫測試函數(如上所述),那么測試至少能夠在 py.test 和 nose 中運行。但是。如果開始使用某個測試框架特有的特性,那么如果以后另一個框架開發出了新的重要特性,您決定進行框架遷移,就必須重寫測試。

py.test 和 nose 都為 TestCase 的 assertRaises() 方法提供了替代品。py.test 提供的版本比較新穎,它也可以接受要執行的字符串,這更強大,因為可以測試引發異常的表達式,而不只是函數調用:

  1. # conveniences.py  
  2. import math  
  3.  
  4. import py.test  
  5. py.test.raises(OverflowError, math.log, 0)  
  6. py.test.raises(ValueError, math.sqrt, -1)  
  7. py.test.raises(ZeroDivisionError, "1 / 0")  
  8.  
  9. import nose.tools  
  10. nose.tools.assert_raises(OverflowError, math.log, 0)  
  11. nose.tools.assert_raises(ValueError, math.sqrt, -1)  
  12. # No equivalent for third example! 

在處理浮點數時,如果希望測試能夠靈活地對待Python 操作符實現,允許對浮點數的處理有細小的誤差,那么上面檢查近似值的例程尤其有意義。

【編輯推薦】

  1. 有關Python系統文件進行介紹指導
  2. 如何正確的使用Python函數
  3. Python 構建工具進行詳細介紹分析
  4. PythonAndroid淺析Python優勢所在
  5. 如何使用Python模塊解析配置文件?
責任編輯:chenqingxiang 來源: 機械工業出版社
相關推薦

2010-01-28 11:16:28

C++操作符

2010-01-27 11:00:17

C++操作符

2010-02-22 16:26:21

Python編輯

2010-02-22 17:54:07

Python工具

2010-02-06 16:57:43

Android操作系統

2010-03-05 15:58:11

操作系統Android

2010-01-19 13:32:20

C++操作符

2010-01-21 09:53:23

C++操作符

2021-10-31 18:59:55

Python操作符用法

2010-02-22 16:40:22

Python解釋器

2009-12-28 09:26:09

ADO對象

2010-02-22 13:20:58

Python中文問題

2010-02-23 10:14:29

Python 源代碼

2010-02-26 09:42:52

Python線程池

2010-02-04 14:41:52

Android菜單類型

2014-09-16 09:57:56

INotifyProp

2009-12-07 18:06:46

WCF框架

2009-12-08 09:00:14

WCF線程

2010-03-09 10:11:34

Linux掛載命令

2010-07-21 13:17:52

Perl文件讀寫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品黄色 | 日韩国产在线 | 国产精品成人一区二区三区夜夜夜 | 亚洲激情视频在线 | 欧美成人猛片aaaaaaa | h视频免费观看 | 久久99精品久久久久 | 亚洲在线一区二区三区 | 99免费在线视频 | 成人国产a | 亚洲精品视频一区 | 久久精彩 | 亚洲欧美日韩国产 | 欧美精品在线免费观看 | 久久99网| 在线看av网址 | 欧美aaa一级片 | 日本一区二区不卡 | 伊色综合久久之综合久久 | 国产一级视频免费播放 | 婷婷去俺也去 | 狠狠干网站| av激情影院 | 中文字幕一区二区三区精彩视频 | 操操操操操 | hsck成人网| 国产一区二区精品自拍 | 日韩视频一区二区在线 | 精品国产91| a级免费黄色片 | 午夜精品一区二区三区在线视频 | 国产精品日日夜夜 | 午夜伦理影院 | 99热国产在线播放 | 九九久久精品 | 日韩毛片 | 久热精品免费 | 国产清纯白嫩初高生视频在线观看 | 日韩免费网站 | 久久国产精品一区二区三区 | 国产乱精品一区二区三区 |