Python基础入门:第九章 模块和包管理

本文介绍了Python中如何实现模块化编程,通过创建module_yyp文件夹,建立__init__.py使文件夹成为模块。在math_yyp.py文件中定义阶乘函数,并在主文件中引入并调用该模块。通过if __name__=='__main__'判断,确保测试代码只在直接运行模块时执行,而非被导入时。这种方式提高了代码复用性和组织性。
摘要由CSDN通过智能技术生成

使用函数,可以把一个功能的代码抽取出来,提供给工程调用,在第九章中,函数和调用的程序是在同一个文件中,这样在工程中互相配合还是比较麻烦的,在工程中每个开发人员分配不同的事情,分配不一样的功能,这在项目中是经常容易碰到的,而不同的开发人员能够开发独立的功能,把独立的功能放在独立的文件中,这就形成了不同功能不同的模块。这就是模块的一种用法。进一步提高了工程的复用率,减低了工程的复杂度。

用模块化的思想,再对上一章的代码进行改造,

在项目中建立一个module_yyp的文件夹,先在文件夹中建立一个__init__.py的文件,__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。

在module_yyp的文件夹下,建立自己的模块,也就是我们想把阶乘独立的当成一个数学模块,建立math_yyp.py文件,文件如下

#!/usr/bin/python
#coding=utf-8

"""
start python 项目
"""

__author__ = 'yyp'

def factorial(x):
    result = 1
    for i in xrange(2, x + 1):
        result *= i
    return result

在主文件中,先把模块引用进来,再进行模块的调用。

#!/usr/bin/python
#coding=utf-8

"""
start python 项目
"""

__author__ = 'yyp'

from module_yyp import math_yyp


if __name__ == '__main__':
    print math_yyp.factorial(5)
#打印出120

用上面的方式,创建自己的模块,其实python中的模块也是这样的原则,在下面更多的章节中,会学习到python相应的模块,你会发现规则就是如此。在编写python代码时,一个是对python语言特性固有的了解,一个是对模板库的熟悉。这些都是需要大量的练习和经验,但是如何系统的看待python也是非常重要的。

在这里可以对一个用法进行解释了,就是在程序中一直使用的if __name__ == '__main__',这一段代码是什么意思,是不是像c/c++语言中,每个程序都有一个main()函数也就是入口函数,python中还是有一定区别的,可以说在python中并没有main函数,程序在执行的时候,都是从文件头开始执行到文件结束的,但像这一小节中,文件还有一种是被引用进来的,这里就是通过 __name__ 来判断,文件是被执行还是被调用的,如果是被调用的 __name__ 的值就不会是main。而在被调用的文件中是用if __name__ == '__main__',通常可以用来对模块进行相应的测试和调试,而这段代码在被调用时是不会被执行的。

如下可以把math_yyp.py 文件修改为:

#!/usr/bin/python
#coding=utf-8

"""
start python 项目
"""

__author__ = 'yyp'

def factorial(x):
    result = 1
    for i in xrange(2, x + 1):
        result *= i
    return result
    
# 在被调用的时候,是不会被执行的    
if __name__ == '__main__':
    print factorial(5)

整个项目的文件结构如下:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值