Py学习  »  Python

python中的模块与包

生信修炼手册 • 3 年前 • 504 次点击  
欢迎关注”生信修炼手册”!
在python中,代码有以下两种组织形式
  1. module, 模块

  2. package,包


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

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__属性。可以实现模块导入时其主程序中的代码不执行,而单独运行该模块时,又可以执行主程序中的代码。实现的方式如下

if __name__ == '__main__':    print('模块单独运行')else:    print('模块被导入')

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

·end·

—如果喜欢,快分享给你的朋友们吧—



原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩



  写在最后


转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。


扫描下方二维码,关注我们,解锁更多精彩内容!


一个只分享干货的

生信公众号



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/63785
 
504 次点击