<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    2.6. 測試模塊

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

                    
                    if __name__ == "__main__":

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

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

                    那么為什么說這個特殊的 if 語句是一個技巧呢?模塊是對象,并且所有的模塊都有一個內置屬性 __name__。一個模塊的 __name__ 的值取決于您如何應用模塊。如果 import 模塊,那么 __name__ 的值通常為模塊的文件名,不帶路徑或者文件擴展名。但是您也可以像一個標準的程序一樣直接運行模塊,在這種情況下 __name__ 的值將是一個特別的缺省值,__main__

                    >>> import odbchelper
                    >>> odbchelper.__name__
                    'odbchelper'

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

                    提示
                    MacPython 上,需要一個額外的步聚來使得 if __name__ 技巧有效。點擊窗口右上角的黑色三角,彈出模塊的屬性菜單,確認 Run as __main__ 被選中。

                    進一步閱讀

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频