python核心程式設計第12章習題

2021-08-10 03:59:35 字數 1247 閱讀 9820

12-1路徑搜尋和搜尋路徑有什麼不同

路徑搜尋是查詢某個檔案的操作,搜尋路徑是查詢一組目錄。

12-2匯入屬性。假設你的模組mymodule裡有乙個foo()函式。

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

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

from mymodule import foo

import mymodule

第一種方法匯入後的命名空間是你當前的命名空間可以直接使用foo(),而第二種方法是將mymodule匯入到當前的命名空間使用需要mymodule.foo()

12-3匯入「import module」和「from module import *」有什麼不同?

呼叫from-import可以把名字匯入當前的命名空間裡去,這意味著你不需要使用屬性/句點屬性標識來訪問模組的識別符號。

12-4命名空間和變數作用域。命名空間和變數作用域有什麼區別?

命名空間空間是名稱到物件的對映。所有的區域性名稱都在區域性作用域內,區域性作用以外的都屬於全域性作用域內。區域性命名空間在執行期間是不斷變化的

12-5 使用_ import _()

a)使用_ import _把乙個模組匯入到你的命名空間。你最後使用了什麼的樣語法。

b)和上面相同,使用_ import _()從指定模組匯入特定名字。

sys = __import__('sys')
__import__('sys',global(),local(),['path'])
12–6. 擴充套件匯入。建立乙個 importas() 函式. 這個函式可以把乙個模組匯入到你的命名空間, 但使用你指定的名字, 而不是原始名字。 例如, 呼叫wname=importas(『mymodule』) 會匯入mymodule , 但模組和它的所有元素都通過新名稱 newname 或 newname.attr 訪問。 這是 python2.0 引入的擴充套件匯入實現的功能。

def

importas

(newname):

return __import__(newname)

sys = importas('sys')

12-7.匯入鉤子。研究pep 302的匯入鉤子機制。實現你自己的匯入機制,允許編碼你的模組(encryption、bzip2、rot13等),這樣直譯器會自動解碼它們並正確匯入。你可以參看zip檔案匯入的實現(參閱第12.5.7節)。

《Python核心程式設計》第10章 習題

10 6.改進的 open 為內建的 open 函式建立乙個封裝.使得成功開啟檔案後,返回檔案控制代碼 若開啟失敗則返回給呼叫者 none 而不是生成乙個異常.這樣你開啟檔案時就不需要額外的異常處理語句 def myopen infile,mode r try fo open infile,mode...

《Python核心程式設計》第14章 習題

14 3.執行環境。建立執行其他python 指令碼的指令碼。filename r d test.py execfile filename 14 4.os.system 呼叫os.system 執行程式。附加題 將你的解決方案移植到subprocess.call import os from sub...

程式設計珠璣第12章

正文 如何生成0 n 1內的m個隨機整數 1 方法一 比如要從5個數里選出2個數,第乙個數的概率是2 5,第二個數的概率是1 4,然後是0 3 那麼現在已經很清楚了。可以寫 如下 for int i 0 i n i if rand n i m 2 方法二 可以用乙個set,每生成乙個隨機,就去set...