美文网首页
自定义模块

自定义模块

作者: 5f2a6061653d | 来源:发表于2019-03-11 08:07 被阅读12次

毕竟内置标准模块的功能有限,开发人员经常需要自定义函数,此时可以把函数组织到模块中,其他程序只需导入便可以引用模块中定义的函数,这种做法不仅使程序具有良好的结构,而且增加了代码的重用性。

在Python中,每个.py文件都可以作为一个模块,模块的名字就是文件的名字,接下来演示如何自定义模块,假设mymodule.py文件中包含2个函数,具体如下所示:

# 输出信息
def output(info):
 print(info)
# 求和
def add(num1, num2):
 print(num1 + num2)

如果创建的模块mymodule.py与1.py保存在同一目录下,此时可以通过导入该模块便可引用其中包含的函数,如下所示。

1 import mymodule                               # 导入mymodule模块
2 mymodule.output('人生苦短,我用Python')  # 调用output()函数
3 mymodule.add(1, 2)                              # 调用add()函数

运行结果如下图所示。


运行结果

在上例中,1.py中导入mymodule模块并引用其中包含的函数。

在实际开发中,编程者自定义完模块后,为了保证模块编写正确,一般需要在模块中添加测试信息,具体如下所示:

# 输出信息
def output(info):
 print(info)
# 求和
def add(num1, num2):
 print(num1 + num2)
# 测试
output('简书作者~隼与鱼')
add(3, 5)

此时,若执行1.py代码,则运行结果如下图所示。


运行结果

从程序运行结果可发现,1.py执行了mymodule.py中的测试代码,这是不期望出现的结果,为了解决上述问题,Python提供了一个name属性,它存在于每个.py文件中,当作为模块导入使用时,模块name属性值为模块文件的主名,当作为顶层模块直接执行时,name属性值为'main'。

接下来修改mymodule.py文件,使其被作为模块导入时不执行测试代码,具体如下所示:

# 输出信息
def output(info):
 print(info)
# 求和
def add(num1, num2):
 print(num1 + num2)
# 测试
if __name__ == '__main__':
 output('扣丁学堂|好程序员特训营')
 add(3, 5)

修改完成后,再次执行1.py代码,则运行结果如下图所示。


运行结果

从程序运行结果可发现,执行1.py代码时,程序并没有执行mymodule模块中的测试代码。

相关文章

网友评论

      本文标题:自定义模块

      本文链接:https://www.haomeiwen.com/subject/atlhrqtx.html