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