首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》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 模块中。做了这个修改后再试着运行程序,看看能不能正常工作。