函数(三)
将函数存储在模块中
函数的优点:
使用函数可以将代码与主程序分开,通过给函数指定描述名称,可以让主程序更易理解。
更进一步,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。这样做的好处是
可以在众多不同的程序中重复使用同一个函数
让函数可导入:
首先得创建模块,模块是扩展名为.py的文件,包含要导入到程序中的代码。
示例:
1,创建一个pizza.py文件,含如下内容:
#!/usr/bin/env python
#filename=pizza.py
def make_pizza(customer,size,*toppings):
"""打印要制作的披萨"""
print(customer.title() + ', ' + "预定一个" + str(size) + "寸的披萨,包含如下食材:")
for topping in toppings:
print("- " + topping)
这个函数中,定义了2个固定形参:
customer,size
和1个任意数量的形参:
*toppings
编写另一段程序:
#!/usr/bin/env python
#filename = 客户预定信息.py
import pizza
pizza.make_pizza('nichole','12','火腿','鱿鱼','鸡肉','芝士')
pizza.make_pizza('tom','21','火鸡','芝士','牛肉','青椒')
在这段函数里,就把pizza.py import了一下
效果:
Nichole, 预定一个12寸的披萨,包含如下食材:
- 火腿
- 鱿鱼
- 鸡肉
- 芝士
Tom, 预定一个21寸的披萨,包含如下食材:
- 火鸡
- 芝士
- 牛肉
- 青椒
如果一个模块中,有多个函数,可以导入特定的函数
导入方法:
form module_name import function_name(使用*代替 function_name 就代表导入模块中所有的函数)
例如:
#filename = 客户预定信息.py
from pizza import make_pizza
make_pizza('nichole','12','火腿','鱿鱼','鸡肉','芝士')
make_pizza('tom','21','火鸡','芝士','牛肉','青椒')
导入函数的时候,指定别名:
#一般用于函数名称特别长,或者与后续主程序有冲突的时候#
例如:
from pizza import make_pizza as mp
在主程序中使用函数make_pizza的时候,只需要使用“mp”