概述
为了方便使用函数,我们可以将函数存储在称为模块的独立文件中,再将模块导入到主程序中,导入一个模块需要使用import语句。
导入整个模块
模块是扩展名为.py的文件
1、导入某个模块
语法为:
import module_name
2、导入特定模块后,调用模块中某个函数
语法为:
moudle_name.function_name()
3、示例
一个目录下有这样两个文件:
pizza.py中的代码为:
def make_pizza(size,*toppings):
"""概述要制作的披萨"""
print(f"\nMaking a {size}-inch pizza with the following toppings:")
for topping in toppings:
print(f"-{topping}")
making_pizzas.py中的代码为:
import pizza
pizza.make_pizza(16,'pepperoni')
pizza.make_pizza(12,'mushrooms','green peppers','extra cheese')
运行 making_pizzas.py,返回结果为:
表示成功执行了模块 pizza.py中的make_pizza函数。
Python在读取这个文件时,代码行import pizza让Python打开了文件pizza.py,并将其中的所有函数复制到这个程序中。
我们看不到复制的代码,因为在这个程序即将运行时,Python在幕后复制了这些代码。我们需要知道的是,我们可以使用导入模块中的所有函数。
导入特定的函数
1、导入模块中某一个函数
语法为:
from moudle_name import function_name
2、从模块中导入任意数量的函数
将函数用逗号隔开即可,语法为:
from module_name import function_0,function_1,function_2
3、和导入整个模块对比
导入特定函数,调用某个函数的目的性更强,更有利于了解主程序;且不需要使用模块名调用函数的写法(module.function(),点表示调用);需要使用函数时,直接写函数名就可以调用,简单方便。
使用as给函数指定别名
1、导入模块中的函数,并给这个函数起别名
语法为:
from module_name import function_name as fn
- module_name表示模块名
- function_name表示函数名
- fn表示我们想给函数起的别名
2、为什么给函数起别名
- 函数名称太长
- 导入的函数名和程序中现有名称一致
使用as给模块指定别名
语法为:
import module_name as m
例如:给模块pizza指定别名为p
import pizza as p
当然,如果我们给模块起了别名,再调用模块函数的时候,就得用别名来调用函数
例如:
原来调用pizzapy模块的make_pizza()函数:
pizza.make_pizza()
现在:
p.make_pizza()
导入模块中的所有函数
使用星号(*)运算符可以让Python导入模块中的所有函数
语法为:
from module_name import *
但是,一般不建议使用这种导入方法, 因为模块较大时,一是导入数据过多很占内存、影响性能,二是大型模块里面有很多函数,如果遇到与现有程序中同样名称的情况,Python无法识别优先使用哪一个,容易出现BUG。
函数编写指南
1、给函数指定描述性名称
且描述性名称只使用小写字母和下划线,描述性名称要我们和阅读者明白我们想要做什么;给模块命名时也是如此。
2、给函数添加注释
应采用文档字符串格式,在函数名下为函数添加注释;注释起码要包含函数的名称、需要的实参和返回值的类型。