包、模块及 `__name__ ==“main“`

包、模块及 __name__ =="main"

代码组织方式

module模块式组织代码的基本方式;当.py脚本被import导入,将其称为模块module,所有的.py文件都可以理解为一个模块。
模块名与脚本.py文件同名,如 items.py作为模块import其他脚本中import items

Python模块可以按照目录组织为包Package。包是一堆按照目录组织的模块和子包,目录下的__init__.py文件存放了包的信息,创建一个包package的步骤是:
–建立一个名字为package name的文件夹;
–在该文件夹下创建一个__init__.py文件(可以为空);
–跟句需要在该文件夹下存放 脚本文件.py、已编译扩展及子包 .pyc .pyo(编译后的2类文件也可以作为module导入)

# case
cal.py文件中定义了 + - * /几种算数运算函数jia(),jian(),cheng(),chu()
在usecal.py文件中调用算数运算的方法是:
import cal
cal.jia()
cal.jian()

问题思考?

但是会涉及一个问题,导入的模块内部本身可能已经定义了一些函数调用的执行(当其自身作为主函数main执行时),但当作为模块导入给其他py脚本时并不想执行module内的函数调用语句,如何解决?

也就是要区分 主调用方式python a.py执行,与被 import 执行的不同

揭晓答案啦,思考过后再看哦

使用Python的一个内置属性,可以在module的py代码中加入 print(__name__),通过执行可以看出当module.py文件自身作为main主脚本执行时,__name__ ="main", 当作为module导入给其他脚本时,__name__= module_Name.

if __name__ =="__main__"
	statements

py脚本的执行机制:无论是import引用,还是python a.py方式,都会从脚本第一行开始向下执行完,但只有当python a.py的主调用方式时,会执行 if __name__ =="__main__" .

*注意:因此如果脚本中有函数调用或操作数据,import时会执行到,但你并不知道,这种调试也很难发现,很隐蔽难以定位,这也是Python编程规范要避免的。

提取公共库module模块

如果很多函数经常用到的话,可以把他们封装到一个py文件中,然后通过调用模块的方式,导入这些函数。当模块文件很多,或者几个模块功能类似,就可以用包package来组织代码。

导入的时候 import 包名.模块名
import导入的3种常用方式:
import moduleName
import moduleName as nickName
from moduleName import funcName    //此种import方式,func可以直接使用无需moduleName.func()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值