8 Function

本文介绍了如何将函数存储在独立的模块中,以提高代码组织和重用性。讲解了创建模块、导入模块及其内容的不同方式,以及函数编写时的命名规范和注释要求,强调了保持代码清晰和可读性的最佳实践。
摘要由CSDN通过智能技术生成

8.6 将函数存储在模块中

使用函数的意义在于使代码块与主程序分离,这样不但使得主程序结构逻辑更为清晰,容易理解,另一方面也简短了代码长度。其实,我们还可以更进一步,将函数写在称作模块的独立文件中,再将模块导入到主程序中。
将函数存储在独立的文件中,可以隐藏代码细节,可以在不同的程序中(而不只是一个)重用函数。



8.6.1 创建一个模块

模块是包含python代码的单个文件,即一个 .py文件,其可以包含函数、类和变量,用于将相关的功能组织到一个文件中,使得代码更易于管理和重用。创建一个模块实质上就是创建一个 .py文件,如下面的python文件

#一个名为 function_module.py的文件
def function_0():
    print("我是一号函数")
    return
def function_1():
    print("我是二号函数")
def function_2():
    print("我是三号函数")

这样,我们就创建了一个名为function_module的模块了


8.6.2 导入模块和模块内容

我们可以使用不同的方法使用import来导入模块的全部或部分内容。

  • 我们可以导入整个模块,然后使用句点表示法访问模块中的函数。 方法:import + module_name
#如这里有另一个名为my_program.py的文件
import function_module  #导入整个模块
function_module.function_0()  #使用句点表示法访问模块中的函数
function_module.function_1()

在函数运行时,导入了整个模块,将其中的所有函数复制到了这个程序中。

  • 我们也可以导入模块中的特定函数,这样就可以直接使用这些函数,而不需要使用句点表示法。 方法:from module_name import function_name
#如这里有另一个名为my_program.py的文件
from function_module import function_0  #导入模块中的特定函数
function_0()  #直接使用这个函数

导入的函数名称有可能与程序中原有的函数冲突,又或者导入的函数名称太长,不方便使用。python支持对导入的函数或模块指定别名

  • 我们还可以使用as给函数指定别名,这样可以避免函数名冲突。 方法:from module_name import function_name as fn
#如这里有另一个名为my_program.py的文件
from function_module import function_0 as f0  #导入模块中的特定函数并指定别名
f0()  #直接使用这个函数
  • 我们还可以使用as给模块指定别名,这样可以避免模块名冲突。 方法:import module_name as mn
#如这里有另一个名为my_program.py的文件
import function_module as fm  #导入整个模块并指定别名
fm.function_0()  #使用句点表示法访问模块中的函数
  • 我们还可以直接导入模块中的所有函数,这样就可以直接使用这些函数,而不需要使用句点表示法。 方法: **from module_name import * **
#如这里有另一个名为my_program.py的文件
from function_module import *  #导入整个模块中的所有函数
function_0()  #直接使用这个函数
function_1()

然而,这种方法并不值得推荐,尤其是导入非自己编写的大型模块,因为你不知道会不会有函数名冲突,而且这样会使得代码难以理解。
最佳的做法是导入整个模块,然后通果句点表示法使用模块中的函数,或者导入模块中的特定函数。


8.7 函数编写指南

  • 函数和模块都应尽量使用描述性名称,使用小写字母和下划线,以提高代码的可读性。 具体可以表现为,名词来描述对象,动词来描述操作,避免简写和缩写,命名风格应一致。

  • 每个函数都应有表示其功能的注释 注释应紧跟在函数定义的下面,使用文档字符串格式,说明清楚函数名、需要的实参和返回值的类型,这样,仅看注释就可以明白如何让函数正确运行。

  • 给形参指定默认值时,等号两边不要有空格,函数调用时的关键字实参也遵循这种约定 如:def function_name(parameter_0, parameter_1=‘default value’)

  • 代码行的长度不应超过79字符 如果形参很多,导致函数定义的长度超过了79字符,可以在函数定义中输入左括号后按回车键,然后在下一行按两次Tab键,将形参列表和只缩进一层的函数体区分开。

  • 如果程序或模块包含多个函数,两相邻函数间可以使用两个空行分隔,以提高可读性 如果在一个模块中,可以使用两个空行分隔不同功能的代码块。

  • 导入模块的import语句应放在文件开头 这样可以清楚地知道程序使用了哪些模块。除非开头使用了注释来描述整个程序

  • 41
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值