在指令碼方式執行時,__name__
是固定的字串:__main__
在以模組方式被匯入時,__name__
就是本模組的名字。
在自定義模組中對__name__
進行判斷,決定是否執行可執行語句:開發階段,就執行,使用階段就不執行。
如果上面都找不到,就報錯。
通過動態修改sys.path的方式將自定義模組新增到sys.path中。
os.path.dirname():獲取某個路徑的父路徑。通常用於獲取當前模組的相對路徑
import sys
import os
第一種方式在使用其中成員時,必須使用模組名作為字首。不容易產生命名衝突。
第二種方式在使用其中成員時,不用使用模組名作為字首,直接使用成員名即可。但是容易產生命名衝突。在後定義的成員生效(把前面的覆蓋了。)
給成員起別名,避免名稱衝突。
from my_module import age as a
給模組起別名,目的簡化書寫。
import my_module as m
預設情況下,所有的成員都會被匯入。
__all__
是乙個列表,用於表示本模組可以被外界使用的成員。元素是成員名的字串。
注意:__all__
只是對from *** import *這種匯入方式生效。其餘的方式都不生效。
針對某個專案中的不同模組之間進行匯入,稱為相對匯入。
只有一種格式:
from 相對路徑 import ***
相對路徑:包含了點號的乙個相對路徑。
. 表示的是當前的路徑。
..表示的是父路徑。
...表示的是父路徑的父路徑。
# 相對匯入同專案下的模組
# from ..z import zz # 容易向外界暴露zz模組
from ..z.zz import *
# 不使用相對匯入的方式,匯入本專案中的模組
# 通過當前檔案的路徑找到z的路徑
import os
import sys
from zz import *
自定義模組
自定義模組 也就是我們自己寫的 1.配置模組說明檔案 npm init 就會生成乙個package.json的檔案 main index.js 我們的主檔案是index.js index.js是這個包的輸出檔案,即便刪除了package.json只要不改變index.js的檔名就沒事,一旦改了就會報...
自定義模組
匯入 拿工具箱 import import test test.func 1 避免寫重複 2 可以多次利用 3 拿來主義print locals import test print locals import test print test.name import test print test.f...
自定義模組
目錄為什麼要使用模組?人們常說的指令碼是什麼?模組的分類 2.import 3 from import 4.py檔案的兩種功能 目錄為什麼要使用模組?人們常說的指令碼是什麼?模組的分類 2.import 3 from import 4.py檔案的兩種功能 乙個函式封裝乙個功能,你使用的軟體可能就是由...