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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 2.4.?萬物皆對象 * 2.4.1\. 模塊導入的搜索路徑 * 2.4.2\. 何謂對象? 也許您沒在意,我剛才的意思是 Python 函數有屬性,并且這些屬性在運行時是可用的。 在 Python 中,函數同其它東西一樣也是對象。 打開您習慣使用的 Python IDE 執行如下的操作: ## 例?2.3.?訪問 `buildConnectionString` 函數的 `doc string` ``` >>> import odbchelper >>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> print odbchelper.buildConnectionString(params) server=mpilgrim;uid=sa;database=master;pwd=secret >>> print odbchelper.buildConnectionString.__doc__ Build a connection string from a dictionary Returns string. ``` | | | | --- | --- | | \[1\] | 第一行將 `odbchelper` 程序作為模塊導入。模塊是指一個可以交互使用,或者從另一 Python 程序訪問的代碼段。(您在 [第 4 章](../power_of_introspection/index.html) 將會看到多模塊 Python 程序的許多例子。) 只要導入了一個模塊,就可以引用它的任何公共的函數、類或屬性。模塊可以通過這種方法來使用其它模塊的功能,您也可以在 IDE 中這樣做。這是一個很重要的概念,在后面我們將談得更多。 | | \[2\] | 當使用在被導入模塊中定義的函數時,必須包含模塊的名字。所以不能只使用 `buildConnectionString`,而應該使用 `odbchelper.buildConnectionString`。如果您用過 Java 的類,對此應該不感到陌生。 | | \[3\] | 訪問函數的 `__doc__` 屬性不像您想象的那樣是通過函數調用。 | > 注意 > 在 Python 中的 `import` 就像 Perl 中的 `require`。`import` 一個 Python 模塊后,您就可以使用 `_module_._function_` 來訪問它的函數;`require` 一個 Perl 模塊后,您就可以使用 `_module_::_function_` 來訪問它的函數。 ## 2.4.1.?模塊導入的搜索路徑 在我們繼續之前,我想簡要地提一下庫的搜索路徑。當導入一個模塊時,Python 在幾個地方進行搜索。明確地,它會對定義在 `sys.path` 中的目錄逐個進行搜索。它只是一個list (列表),您可以容易地查看它或通過標準的list方法來修改它。(在本章的后面我們將學習更多關于list的知識。) ## 例?2.4.?模塊導入的搜索路徑 ``` >>> import sys >>> sys.path ['', '/usr/local/lib/python2.2', '/usr/local/lib/python2.2/plat-linux2', '/usr/local/lib/python2.2/lib-dynload', '/usr/local/lib/python2.2/site-packages', '/usr/local/lib/python2.2/site-packages/PIL', '/usr/local/lib/python2.2/site-packages/piddle'] >>> sys <module 'sys' (built-in)> >>> sys.path.append('/my/new/path') ``` | | | | --- | --- | | \[1\] | 導入 `sys` 模塊,使得它的所有函數和屬性都有效。 | | \[2\] | `sys.path` 是一個指定當前搜索路徑的目錄列表。(您的輸出結果可能有所不同,這取決于您的操作系統、正在運行的 Python 版本和初始安裝的位置。)Python 將搜索這些目錄 (按順序) 來查找一個與您正試著導入的模塊名相匹配的 `.py` 文件。 | | \[3\] | 實際上,我沒說實話。真實情況要比這更復雜,因為不是所有的模塊都保存為 `.py` 文件。有一些模塊 (像 `sys`),是“內置模塊”,它們實際上是置于 Python 內部的。內置模塊的行為如同一般的模塊,但是它們的 Python 源代碼是不可用的,因為它們不是用 Python 寫的!(`sys` 模塊是用 C 寫的。) | | \[4\] | 在運行時,通過向 `sys.path` 追加目錄名,就可以在 Python 的搜索路徑中增加新的目錄,然后當您導入模塊時,Python 也會在那個目錄中進行搜索。這個作用在 Python 運行時一直生效。(在 [第 3 章](../native_data_types/index.html) 我們將討論更多的關于 `append` 和其它的 list 方法。) | ## 2.4.2.?何謂對象? 在 Python 中一切都是對象,并且幾乎一切都有屬性和方法。所有的函數都有一個內置的 `__doc__` 屬性,它會返回在函數源代碼中定義的 `doc string`;`sys` 模塊是一個對象,它有一個叫作 `path` 的屬性;等等。 我們仍然在回避問題的實質,究竟何謂對象?不同的編程語言以不同的方式定義 “對象” 。 某些語言中,它意味著_所有_ 對象_必須_ 有屬性和方法;另一些語言中,它意味著所有的對象都可以子類化。在 Python 中,定義是松散的;某些對象既沒有屬性也沒有方法 (關于這一點的說明在 [第 3 章](../native_data_types/index.html)),而且不是所有的對象都可以子類化 (關于這一點的說明在[第 5 章](../object_oriented_framework/index.html))。但是萬物皆對象從感性上可以解釋為:一切都可以賦值給變量或作為參數傳遞給函數 (關于這一點的說明在[第 4 章](../power_of_introspection/index.html))。 這一點太重要了,所以我會在剛開始就不止一次地反復強調它,以免您沒注意到:在 Python 中_萬物皆對象_。字符串是對象。列表是對象。函數是對象。甚至模塊也是對象,這一點我們很快會看到。 ## 進一步閱讀 * _Python Reference Manual_ 確切解釋了[在 Python 中萬物皆對象的含義](http://www.python.org/doc/current/ref/objects.html),因為有些書生氣十足的人,喜歡花時間討論這類的問題。 * eff-bot 總結了 [Python 對象](http://www.effbot.org/guides/python-objects.htm).
                  <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>

                              哎呀哎呀视频在线观看