<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 4.4.4 模塊的有條件執行 有些 Python 模塊是可以直接執行的,一般稱為程序或腳本;而另一些 Python 模塊中只 包含一些函數定義,本身并沒有主程序入口,因而不能執行。標準庫就屬于后一種模塊。有 時我們希望創建一種混合式的模塊——既可以作為獨立執行的程序,又可以作為被其他程序 導入的庫。在 Python 中,混合式模塊可以通過在程序入口前加上特定條件而實現。 如所熟知,我們一般都在程序文件的最后加上啟動程序的一行語句: ``` main() ``` 這是對程序入口(主函數 main)的調用,沒有這一行,程序文件就不是可執行的文件。這 就是直接執行的模塊文件,在窗口系統中用鼠標雙擊即可啟動程序。 Python 在導入一個模塊的時候會執行模塊中的每一行語句,執行函數定義語句 def 時 就創建相應的函數但并不執行,而最后遇到啟動程序的 main 時就啟動了整個程序。有時我 們希望導入模塊時不要執行整個程序,例如交互環境下測試程序時,通常的做法是先導入模 塊,需要執行代碼時才去調用 main 或其他函數。要想只導入不執行,當然可以刪掉程序入 口 main(),但這又會失去雙擊執行程序的可能。兩全其美的做法是在主程序入口 main 之 前加個條件: ``` if <條件>: main() ``` 意思是當條件滿足時啟動程序,否則不啟動程序。問題是條件怎么寫? 如果是用 import 導入模塊,Python 會將該模塊的一個特殊變量 name 的值設置為 模塊的名字。例如: ``` >>> import math >>> print math.__name__ math ``` 第一行導入模塊 math,并將 math 的變量 __name__ 設置為'math'。第二行顯示了這個變量的值。 但如果是直接執行模塊(如雙擊模塊文件圖標等),Python 則將模塊的特殊變 量 name 設置為字符串'main'。因此可以通過特殊變量 name 的值來判斷模塊是被 導入的還是被直接執行的。根據這個底層細節,我們可以將程序文件的最后一行改成: ``` if __name__ == ’__main__’: main() ``` 這樣就能確保當程序是直接執行時,main 能啟動;當程序是被導入時,忽略 main。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看