要使用模块中的某个函数,首先必须告诉 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
模块中。做了这个修改后再试着运行程序,看看能不能正常工作。