讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 15.5 如何使用模塊 >

15.5 如何使用模塊

要使用模塊中的某個函數,首先必須告訴 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 模塊中。做了這個修改後再試著運行程序,看看能不能正常工作。