首頁 > 後端開發 > Python教學 > Python程式碼縮排與測試模組範例詳解

Python程式碼縮排與測試模組範例詳解

不言
發布: 2018-05-07 11:50:54
原創
1360 人瀏覽過

這篇文章主要介紹了關於Python程式碼縮排和測試模組範例詳解,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

前言

Python程式碼縮排與測試模組是大家學習python不可或缺的一部分,本文主要介紹了關於Python程式碼縮排和測試模組的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

一、Python程式碼縮排

#Python 函數沒有明顯的begin 和end ,沒有標示函數的開始和結束的花括號。唯一的分隔符號是一個冒號 ( : ),接著程式碼本身是縮排的。

例如:縮排 buil dCon necti onStr ing 函數

#
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
登入後複製

程式碼區塊是透過它們的縮排定義的。我所說的「程式碼區塊」是指:函數、 if 語句、for 迴圈、 while 循環,等等。開始縮排表示區塊的開始,取消縮排表示區塊的結束。不存在明顯的括號,大括號或關鍵字。這意味著空白是重要的,並且要一致。在這個例子中,函數程式碼 (包括 doc string ) 縮排了 4 個空格。不一定要是 4 個,只要一致就可以了。沒有縮排的第一行則被視為在函數體之外。

例如: “if 語句” 展示了一個 if 語句縮排的範例。

def fib(n): (1)
print 'n =', n (2)
if n > 1: (3)
return n * fib(n - 1)
else: (4)
print 'end of the line'
return 1
登入後複製

(1) 這是一個名為 fib 的函數,有一個參數 n 。在函數內的所有程式碼都是縮排的。

(2) 在 Python 中輸出內容到螢幕上非常容易,只要使用 print 即可。 print 語句可以接受任何資料類型,包括字串、整數和其它類型,如字典和列表 。甚至可以混在一起輸出,只要用逗號隔開。所有值都輸出到同一行,用空格隔開 (逗號並沒有列印出來)。所以當用 5 來呼叫 fib時,將輸出「n = 5」。

(3) if 語句是一種的程式碼區塊。如果 if 表達式計算為 true,緊接著的縮排區塊會被執行,否則進入 else 區塊執行。

(4) 當然 if 和 else 區塊可以包含許多行,只要它們都同樣縮排。這個 else 區塊中有兩行程式碼。對於多行程式碼區塊沒有其它特殊的語法,只要縮排就行了。在經過一些最初的抗議和幾個與 Fortran 的嘲諷的類比之後,您會心平氣和地
對待代碼縮進,並且開始看到它的好處。一個主要的好處就是所有的 Python程式看起來都差不多,因為縮排是一種語言的要求而不是一種風格。這樣就使得閱讀和理解他人的 Python 程式碼容易得多。

Note: Python vs. Java: 語句和語句分割

#Python 使用硬回車來分割語句,冒號和縮排來分割程式碼區塊。 C 和 Java 使用分號來分割語句,花括號來分割程式碼區塊。

二、Python測試模組

#所有的 Python 模組都是對象,並且有幾個有用的屬性。您可以使用這些屬性方便地測試您所編寫的模組。下面是一個使用 if name 的技巧。

if name == "__main__":

在繼續學習新東西之前,有幾個重要的觀察結果。首先, if 表達式無需使用圓括號括起來。其次, if 語句以冒號結束,緊接在後的是縮排程式碼。

Note: Python vs. C: 比較與賦值

與 C 一樣,Python 使用 == 做比較,使用 = 做賦值。與 C 不一樣,Python 不支援行內賦值,所以不會出現想要進行比較卻意外地出現賦值的情況。

那為什麼說這個特殊的 if 語句是一個技巧呢?模組是對象,並且所有的模組都有一個內建屬性 name 。一個模組的 name 的值取決於您如何套用模組。如果 import 模組,那麼 name 的值通常為模組的檔案名,不含路徑或檔案副檔名。但是您也可以像一個標準的程式一樣直接執行模組,在這種情況下 name 的值將是一個特別的預設值, main 。

>>> import odbchelper
>>> odbchelper.__name__
'odbchelper'
登入後複製

只要了解這一點,您就可以在模組內部為您的模組設計一個測試套件,並在其中加入這個 if 語句。當您直接執行模組, name 的值是 main ,所以測試套件執行。當您匯入模組, name 的值就是別的東西了,所以測試套件被忽略。這樣使得在將新的模組整合到一個大程式之前開發和調試容易多了。

Tip: Mac OS 上的 if name __

在 MacPython 上,需要一個額外的步聚來使得 if name 技巧有效。點選視窗右上角的黑色三角,彈出模組的屬性選單,確認 Run as main 被選取。

  • Python單元測試框架unittest使用方法講解

  • #python 測試實作方法

##相關推薦:

Python程式碼的打包與發布

將python程式碼和註解分離的方法_python

交叉驗證以及python程式碼實作

以上是Python程式碼縮排與測試模組範例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板