import 模組1[,模組2,模組3...]
os 頂級模組
os.path 非頂級模組
as 相當於重新命名
直譯器負責模組單獨載入,單獨初始化,生成乙個模組物件,當前作用域生成乙個同名識別符號,對映到模組物件上,然後就可以通過這個識別符號來訪問模組物件的資源。並不是直接引用模組,或把模組的原始碼載入到當前空間。
在html語言中include的意思是直接將其它檔案的原始碼包含進來,生成乙個新的原始碼檔案。
import functoolsprint(dir())
print(functools)
print(functools.wraps)
執行結果:
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__','functools']
//這個模組物件是乙個module模組型別
[finished in 0.4s]
匯入之後能用 "." 來呼叫模組的類、方法、屬性,是因為模組被初始化成了乙個物件。
import os.pathprint(dir())
#path. #錯誤用法,這種匯入方式不能使用使用非頂級模組名稱直接呼叫,但當使用as語句時可以使用
os.path.exists()
執行結果:
[..., 'os']
import os.path as pprint(dir())
print(p.__name__)
執行結果:
[...,'p']
ntpath
[finished in 0.3s]
1. 當直接匯入頂級模組時(如 import os),直譯器負責單獨載入模組,初始化模組,生成乙個模組物件,並繫結在當前命名空間的乙個同名的識別符號。
使用時,需要使用 「模組名.方法()」 的格式。
2. 當匯入的是非頂級模組時(如 import os.path),只會在當前命名空間生成頂級模組的物件識別符號,並不會生成path識別符號。
使用時,也只能通過 「os.path.exists()」 的完整層級關係使用。
3. 當匯入的非頂級模組使用了as 語句(如 import os.path as p)時,當前命名空間繫結的是 "p" 這個物件識別符號。
使用時,就可以通過 「p.exists()」 的方式來使用模組資源。
模組化 import和export
關於js模組化的使用,大家肯定不陌生,現有的主要兩種 cmd和amd,還有一種相容cmd和amd寫法的umd。一般前端框架都支援amd,而node.js採用的是cmd的模組語法。但大部分瀏覽器不支援,相信以後瀏覽器肯定會逐步支援的。export 基本用法兩種 1直接匯出 export functio...
談談模組化的 require 和 import
一 區別 require是commonjs的規範,在node中實現的api,import是es的語法,由編譯器處理。所以import可以做模組依賴的靜態分析,配合webpack rollup等可以做treeshaking。commonjs匯出的值會複製乙份,require引入的是複製之後的值 引用型...
python的模組化
一 模組化 二 匯入語句 1 import語句 import functools 匯入頂級模組 import os.path 匯入非頂級模組 print dir print functools 匯入頂級模組,其名稱會加入到本地命名空間中,並繫結到其模組物件 匯入非頂級模組,將其頂級模組加入到本地命名...