函数保存在模块中:
将函数存储在被称为 模块 的独立文件中,再将模块导入 到主程序中。 import 语句允许在当前运行的程序文件中使用模块中的代码。
一、导入整个模块:
模块 是扩展名为.py的文件, 包含要导入到程序中的代码。
import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
二、导入特定的函数:
from module_name import function_name
使用逗号可以从模块中引入任意数量的函数。
from module_name import function_0, function_1, function_2
三、使用 as 给函数起别名:
如果要导入的函数的名称可能与程序中现有的名称冲突, 或者函数的名称太长, 可指定简短而独一无二的别名
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')
四、使用 as 给模块指定别名:
import pizza as p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
五、导入模块的所有函数:
from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
import 语句中的星号让Python将模块pizza 中的每个函数都复制到这个程序文件中。 由于导入了每个函数, 可通过名称来调用每个函数, 而无需使用句点表示法。 然而, 使用并非自己编写的大型模块时, 最好不要采用这种导入方法: 如果模块中有函数的名称与你的项目中使用的名称相同, 可能导致意想不到的结果: Python可能遇到多个名称相同的函数或变量, 进而覆盖函数, 而不是分别导入所有的函数。
六、函数编写指南:
编写函数时, 需要牢记几个细节。 应给函数指定描述性名称, 且只在其中使用小写字母和下划线。 描述性名称可帮助你和别人明白代码想要做什么。 给模块命名时也应遵循上述约定。
每个函数都应包含简要地阐述其功能的注释, 该注释应紧跟在函数定义后面, 并采用文档字符串格式。 文档良好的函数让其他程序员只需阅读文档字符串中的描述就能够使用它: 他们完全可以相信代码如描述的那样运行; 只要知道函数的名称、 需要的实参以及返回值的类型, 就能在自己的程序中使用它。
给形参指定默认值时, 等号两边不要有空格:
def function_name(parameter_0, parameter_1='default value')
对于函数调用中的关键字实参, 也应遵循这种约定:
function_name(value_0, parameter_1='value')