要让函数是可导的, 得先创建模块。 模块是扩展名为 .py 的文件, 包含要导入到程序中的全部代码。 下面创建一个包含函数 make_pizza()的模块。
pizza.py
def make_pizza(size, *toppings):
"""概述要制作的披萨"""
print("\nMaking a " + str(size) +
"-inch pizza with the following toppings:")
for topping in toppings:
print("- " + topping)
接下来,在 pizza.py 所在的文件下,再新建一个 making_pizzas.py 文件,这个文件导入刚刚创建的模块, 在调用make_pizza():
import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
Python读取这个文件的时候, 代码运行import pizza让Python打开文件pizza.py, 并将其中的所有含少数都复制到这个程序中。 你看不到复制的代码, 因为这个程序在运行时, Python在幕后辅助这些代码。 只要知道, 在makeing_pizzas.py中, 可以使用pizza.py中定义的所有函数。
Making a 16-inch pizza with the following toppings:
- pepperoni
Making a 12-inch pizza with the following toppings:
- mushrooms
- green peppers
- extra cheese
这就是一种导入方法:只需要编写一条import语句并在其中指定模块名, 就可以在程序中使用这个模块的所有函数。
使用下面语法可以使用其中的任何一个函数:
module_name.function_name()
可以导入模块的特定函数,语法如下:
from module_name import function_name
通过用逗号分隔函数名, 可根据需要从模块中导入任意数量的函数:
from module_name import function_0, function_1, function_2
对于前面的makeing_pizzas.py的例子, 如果只想导入使用的函数,代码如下:
from pizza import make_pizza
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
输出结果一样, 使用这种语法时, 调用函数时就无需使用句点, 由于在import语句中显示地导入了函数make_pizza(), 因此调用它时只需要指定名称。
示例代码:
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')
指定别名的通用语法如下:
from module_name import function_name as fn
示例代码:
import pizza as p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
给模块指定别名的通用语法如下:
import module_name as mn
示例代码:
from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
import语句中的星号让Python将模块pizza中的每个函数都复制到这个程序文件中。由于导入了每个函数, 可通过名称来调用每个函数, 而无需使用句点表示法。