《Python核心編程》第二版第326頁第十二章練習 -Python核心編程答案-自己做的-

來源:互聯網
上載者:User

這是自己做的練習,可能有錯誤,歡迎討論和各種最佳化重構方案。

12-1.
路徑搜尋和搜尋路徑。路徑搜尋和搜尋路徑之間有什麼不同。
【答案】
路徑搜尋(Search Path)搜尋路徑(Path Search),前者指尋找某個檔案的操作(the pursuit of a file),後者是去尋找一組目錄(through a set of directories)。本文來自部落格園balian
預設搜尋路徑是編譯或者安裝時指定。查看當前搜尋路徑參看下例。可以用列表的append()方法添加搜尋路徑。

>>> import sys>>> sys.path['', 'D:\\Python27\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python27', 'D:\\Python27\\lib\\site-packages']>>>

 

12-2.

匯入屬性。假設你的模組mymodule裡面有一個foo()函數。

(a)把這個函數匯入到你的名稱空間有哪兩種方法?

(b)這兩種方法匯入後的名稱空間有什麼不同?

【答案】

(a)使用import語句(import module)和使用from-import語句(from module import)。避免使用from module import *語句。 
(b)使用from-import語句,foo()被直接匯入到局部名字空間去了,所以它必須被直接使用,而不能加上模組名的限定。

如果用12-1題的sys模組中path()函數作為例子:

採用第一種方法(import module)代碼如下:

>>> import sys>>> sys.path # 需要加上模組名的限定['', 'D:\\Python27\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python27', 'D:\\Python27\\lib\\site-packages']>>> path # 注意這裡的錯誤,path()不可以直接使用Traceback (most recent call last):  File "<stdin>", line 1, in <module>NameError: name 'path' is not defined>>>

採用第二種方法(from module import)代碼如下:

>>> from sys import path>>> sys.path # 主要這裡的錯誤,不能加上模組名的限定Traceback (most recent call last):  File "<stdin>", line 1, in <module>NameError: name 'sys' is not defined#本文來自部落格園balian>>> path # path()必須直接使用['', 'D:\\Python27\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python27', 'D:\\Python27\\lib\\site-packages']>>>

 

【參考】

python模組的匯入的兩種方式區別詳解

http://developer.51cto.com/art/201003/189555.htm

python匯入模組的三種方法

http://www.docin.com/p-56218303.html

12-3.

匯入“import module”和“from module import *”有什麼不同?

【答案】

“from module import *”可以把指定模組的所有名稱匯入到當前的名稱空間,但這種用法必須受到限制。參見本書317頁。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.