前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的模块与包

python中的模块与包

作者头像
生信修炼手册
发布2020-06-04 11:05:55
5100
发布2020-06-04 11:05:55
举报
文章被收录于专栏:生信修炼手册生信修炼手册

在python中,代码有以下两种组织形式

  1. module, 模块
  2. package,包

与perl语言不同,一个python脚本就是一个模块,而包则是多个模块组成的功能完善的整体。对于一个package而言,其文件结构示意如下

代码语言:javascript
复制
wes/
    __init__.py
    quality_control/
        __init__.py
        fastp.py
        cutadapt.py
    mapping/
        __init__.py
        bwa.py
        bowtie.py
    snp_calling/
        __init__.py
        gatk.py
        samtools.py

最外层是包的名称,内层的文件夹下是不同的子模块,为了区分普通的文件路径和python包,在每一层文件夹下都必须有一个名称为__init__.py文件,该文件用于定义模块初始化的一些属性,如果没有特殊要求,该文件内容为空即可。

模块到包的变化,只需要遵守特定的文件结构即可,而普通的python脚本作为一个模块来使用,则有一些注意事项。

模块从形式上看和普通的python脚本是一样的,也是由常量,函数,类,方法等定义构成,唯一不同的是,其函数执行的代码,需要防止在特定的地方。

模块在第一次导入时,会自动执行主程序中的内容,通常情况下,我们只需要使用模块中定义的方法,而不希望在导入模块时,就去执行其中的代码。通过__name__属性。可以实现模块导入时其主程序中的代码不执行,而单独运行该模块时,又可以执行主程序中的代码。实现的方式如下

代码语言:javascript
复制
if __name__ == '__main__':
    print('模块单独运行')
else:
    print('模块被导入')

当__name属性的值为__main__时,说明该模块作为一个脚本在单独运行,相反的,当值不为__main__时,说明该模块被导入,通过这个if判断,将对应的代码放置在不同的分支中,就可以将两种情况下需要执行的代码区分开,这也是为何python脚本推荐写成上述标准格式的原因。

·end·

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档