第一個IronPython程式(之二)

來源:互聯網
上載者:User

萬物皆對象,意思是 IronPython 函數有屬性, 並且這些屬性在運行時是可用的。在 IronPython(Python) 中, 函數同其它東西一樣也是對象.

命令列中輸入ipy

例子2.3 訪問BuildConnectionString的函數的 doc string

>>> import first                  1
>>> params = {"server":"shanyou.zhang","database":"pubs","uid":"sa","pwd":"secre
t"}
>>> print first.BuildConnectionString(params)       2
server=shanyou.zhang;database=pubs;uid=sa;pwd=secret
>>> print first.BuildConnectionString.__doc__      3
Build a connection string from a dictionary of parameters.

Returns string.
>>>

第一行將 first程式作為模組匯入。模組是指:可以互動使用的一個程式碼片段, 或者來自一個大規模的 IronPython 程式。 一旦匯入了一個模組, 就可以引用它的任何公用的函數、類或屬性。模組可以通過這種方法來使用其它模組的功能。
當使用在被匯入模組中定義的函數時, 必須包含模組的名字。所以不能只使用 BuildConnectionString, 而應該使用 first.BuildConnectionString。 如果您用過 C# 的類, 對此應該不感到陌生。

訪問函數的 __doc__ 屬性不像您想象的那樣是通過函數調用。

在我們繼續之前, 我想簡要地提一下庫的搜尋路徑。當匯入一個模組時, IronPython 在幾個地方進行搜尋。 明確的, 它會按所有定義在 sys.path 中的目錄進行搜尋。它只是一個list (列表), 您可以容易地查看它或通過標準的list方法來修改它。

例子2.4模組匯入的搜尋路徑

>>> import sys                             1
>>> sys.path                                2
[u'C://Documents and Settings//Administrator///u684c/u9762//IronPython//IronPyth
on-1.0//Tutorial', u'C://Documents and Settings//Administrator///u684c/u9762//Ir
onPython//IronPython-1.0//Lib']
>>> sys                                         3
<module 'sys' (built-in)>
>>> sys.path.append('C:/Documents and Settings/Administrator/案頭/IronPython/Iro
nPython-1.0/Tutorial')                 4
>>>

1、匯入 sys 模組, 使得它的所有函數和屬性都有效。
2、sys.path 是一個組成當前搜尋路徑的目錄列表。 (您的輸出結果可能有所不同, 這取決於您的作業系統,初始安裝的位置。)Iron Python 將搜尋這些目錄 (按順序) 來尋找一個與您正試著匯入的模組名相匹配的 .py 檔案。
3、實際上, 我沒說實話。真實情況要比這更複雜, 因為不是所有的模組都儲存為 .py 檔案。有一些, 像 sys 模組, 是"內建模組", 它們實際上是置於 Python 內部的。內建模組的行為如同一般的模組, 但是它們的 IronPython 原始碼是停用, 因為它們不是用 IronPython 寫的。 ( sys 模組是用 C #寫的。)
4、在運行時, 通過向 sys.path 追加目錄名, 就可以在 IronPython 的搜尋路徑中增加新的目錄, 然後一旦您試著匯入模組, IronPython 也會在那個目錄中進行搜尋。這個作用在 IronPython 運行時一直生效。

IronPython 中一切都是對象, 並且幾乎一切都有屬性和方法。 所有的函數都有一個內建的 __doc__ 屬性, 它會返回在函數原始碼中定義的 doc string 。 sys 模組是一個對象, 它有一個叫作 path 的屬性。等等。

我們仍然在迴避問題的實質, 究竟何謂對象。 不同的程式設計語言以不同的方式定義 “對象” 。某些語言中, 它意味著 所有 對象 必須 有屬性和方法;另一些語言中, 它意味著所有的對象都可以子類化。在 IronPython 中, 定義是鬆散的;某些對象既沒有屬性也沒有方法  , 而且不是所有的對象都可以子類化 。但是萬物皆對象從感性上可以解釋為:一切都可以賦值給變數或作為參數傳遞給函數

這一點太重要了, 在IronPython 中 萬物皆對象 。字串是對象。列表是對象。函數是對象。甚至模組也是對象, 這一點我們很快會看到。

第一個IronPython程式(之二)
第一個IronPython程式(之一)
安裝 IronPython

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.