Python __import__()函數引入模組名

2020-07-16 10:05:04
前面講過,其實模組就是一個程式碼檔案,因此要求其檔名要符合作業系統的命名規則。

這可能會遇到一個問題,即作業系統中允許檔名中包含空格,也就是說,模組檔案可以起名為類似“a b”的形式。但這和 Python 語法相矛盾,換句話說,Python 是以空格來隔離一行語句中的不同元素的,如果模組名中出現空格,就無法再使用 import 引入。

例如,我們自定義一個模組,並起名為 "demo text.py",該模組中只包含如下輸出語句:
print("C語言中文網")
如果在其他檔案中,仍以 import 語句將其引入,Python 直譯器會報 SyntaxError 錯誤:

>>>import demo text
SyntaxError: invalid syntax

不僅如此,如果模組名稱以數位開頭,也無法使用 import 語句正常匯入。例如將 "demo text"模組檔名改為 "1demo",並使用 import 嘗試匯入,也會報 SyntaxError 錯誤:

>>> import 1demo
SyntaxError: invalid syntax


針對以上這兩種情況,如果模組中包含空格或者以數位開頭,就需要使用 Python 提供的 __import__() 內建函數引入模組。例如,當模組名為"demo text" 時,引入方法如下:
__import__("demo text")
執行結果為:

C語言中文網


同樣,如果模組名為 "1demo",則引入方法如下:
__import__("1demo")
執行結果為:

C語言中文網

注意,使用 __import__() 函數引入模組名時,要以字串的方式將模組名引入,否則會報 SyntaxError 錯誤。