import 模塊1[,模塊2,模塊3...]python
os 頂級模塊
os.path 非頂級模塊
as 至關於重命名ui
解釋器負責模塊單獨加載,單獨初始化,生成一個模塊對象,當前做用域生成一個同名標識符,映射到模塊對象上,而後就能夠經過這個標識符來訪問模塊對象的資源。並非直接引用模塊,或把模塊的源碼加載到當前空間。spa
在HTML語言中include的意思是直接將其它文件的源碼包含進來,生成一個新的源碼文件。對象
import functools
print(dir())
print(functools)
print(functools.wraps)
運行結果:
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'functools']
<module 'functools' from 'C:\\Python\\lib\\functools.py'> //這個模塊對象是一個module模塊類型
<function wraps at 0x0000020A133F1D90>
[Finished in 0.4s]
導入以後能用 "." 來調用模塊的類、方法、屬性,是由於模塊被初始化成了一個對象。blog
import os.path
print(dir())
#path. #錯誤用法,這種導入方式不能使用使用非頂級模塊名稱直接調用,但當使用as語句時能夠使用
os.path.exists()
運行結果:
[..., 'os']
import os.path as p
print(dir())
print(p.__name__)
運行結果:
[..., 'p']
ntpath
[Finished in 0.3s]
1. 當直接導入頂級模塊時(如 import os),解釋器負責單獨加載模塊,初始化模塊,生成一個模塊對象,並綁定在當前命名空間的一個同名的標識符。資源
使用時,須要使用 「模塊名.方法()」 的格式。作用域
2. 當導入的是非頂級模塊時(如 import os.path),只會在當前命名空間生成頂級模塊的對象標識符,並不會生成path標識符。源碼
使用時,也只能經過 「os.path.exists()」 的完整層級關係使用。io
3. 當導入的非頂級模塊使用了as 語句(如 import os.path as p)時,當前命名空間綁定的是 "p" 這個對象標識符。function
使用時,就能夠經過 「p.exists()」 的方式來使用模塊資源。