<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>

                項目結構應該保持簡單,審慎地使用包和層次結構:過深的層次結構在目錄導航時將如同夢魘,但過平的層次結構則會讓項目變得臃腫。 一個常犯的錯誤是將單元測試放在包目錄的外面。這些測試實際上應該被包含在軟件的子包中,以便: - 不會偶爾被**setuptools**(或者其他打包庫)作為tests頂層模塊自動安裝; - 能夠被安裝,且被其他包用于構建自己的單元測試。 圖1-1展示了一個項目的標準文件層次結構。 `setup.py`是Python安裝腳本的標準名稱。在安裝時,它會通過Python分發工具(distutils)進行包的安裝。也可以通過`README.rst`(或者`README.txt`或其他合適的名字)為用戶提供重要信息。`requirements.txt`應該包含Python包所需要的依賴包,也就是說,所有這些包都會預先通過`pip`這樣的工具進行安裝,以保證你的包能正常工作。還可以包含`test-requirements.txt`,它只列出運行測試套件所需要的依賴包。最后,`docs`文件夾應該包括`reStructuredText`格式的文檔,以便能夠被Sphinx處理(參見5.1節)。 包中還經常需要包含一些額外的數據,如圖片、shell腳本等。不過,關于這類文件如何保存并沒有一個統一的標準。因此放到任何覺得合適的地方都可以。 ![](https://box.kancloud.cn/38f8d21c680d577e5195943f89774a23_2128x1762.png) 圖1-1 標準的包目錄結構 下面這些頂層目錄也經常出現。 - `etc`用來存放配置文件的樣例。 - `tools`用來存放與工具有關的shell腳本。 - `bin`用來存放將被`setup.py`安裝的二進制腳本。 - `data`用來存放其他類型的文件,如媒體文件。 一個常見的設計問題是根據將要存儲的代碼的類型來創建文件或模塊。使用`functions.py`或者`exceptions.py`這樣的文件是很**糟糕的**方式。這種方式對代碼的組織毫無幫助,只能讓讀代碼的人在多個文件之間毫無理由地來回切換。 此外,應該避免創建那種只有一個`__init__.py`文件的目錄,例如,如果`hooks.py`夠用的話就不要創建`hooks/__init__.py`。如果創建目錄,那么其中就應該包含屬于這一分類/模塊的多個Python文件。
                  <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>

                              哎呀哎呀视频在线观看