要使用模塊中的某個函數,首先必須告訴 Python 我們想要使用哪些模塊。在程序中包含其他模塊的 Python 關鍵字是 import
。可以這樣使用:
import my_module
下面寫一個程序來使用我們剛才編寫的模塊,這裡我們想用 c_to_f
函數完成溫度轉換。
前面已經瞭解了如何使用函數並向它傳遞參數。這裡惟一不同的是,函數與主程序不在同一個文件中,而在另外的一個單獨的文件中,所以必須使用 import
。代碼清單 15-2 中的程序使用了我們剛才編寫的模塊 my_module.py。
代碼清單 15-2 使用模塊
創建一個新的 IDLE 編輯器窗口,鍵入這個程序。保存為 modular.py,然後運行這個程序,看看會發生什麼。需要把它保存到 my_module.py 所在的同一個文件夾(或目錄)下。
能正常工作嗎?應該會看到類似下面的結果:
>>> ========================= RESTART =========================>>>Enter a temperature in Celsius: 34Traceback (most recent call last): File "C:/MyPythonPrograms/modular.py", line 4, in <module> fahrenheit = c_to_f(celsius)NameError: name 'c_to_f' is not defined
程序不能正常工作!怎麼回事?錯誤消息指出函數 c_to_f
沒有定義。不過我們很清楚前面已經在 my_module
中定義了這個函數,而且我們確實已經導入了這個模塊。
出現這個問題的原因是,在 Python 中指定在其他模塊中定義的函數時必須更加具體。解決這個問題的一種方法是把這一行代碼
fahrenheit = c_to_f(celsius)
改為
fahrenheit = my_module.c_to_f(celsius)
現在我們向 Python 特別指出:c_to_f
函數在 my_module
模塊中。做了這個修改後再試著運行程序,看看能不能正常工作。