欢迎关注”生信修炼手册”! 在python中,代码有以下两种组织形式 module,模块 package,包 与perl语言不同,一个python脚本就是一个模块,而包则是多个模块组成的功能完善的整体。对于一
欢迎关注”生信修炼手册”!
在python中,代码有以下两种组织形式
与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·
—如果喜欢,快分享给你的朋友们吧—
扫描下方二维码,关注我们,解锁更多精彩内容!
一个只分享干货的
生信公众号