各位小伙伴,大家周二愉快!
本期课程继续和大家共同探讨一下Python中的模块。
昨天我们已经了解了如何使用基本的模块及模块的导入操作,今天我们来学习模块的一个特殊的属性:“__name__”(注意:name两边分别有两个英文状态下的‘_’符号)
话说,这玩意有啥用呢?很简单,有了name属性,我们就可以让一个模块、包、项、甚至函数在自我运行时候和被导入(包含)运行的时候执行不同的内容,请看下面的例子:
首先我们编写这样一段代码把他保存成name.py文件,作用是:
如果这个文件是自我运行的,就会输出‘本程序正在运行’
如果这个文件是被其他文件导入的,就会输出‘被导入到其他模块’
好了,下面我们运行一下这个程序本身:
下面,我们把以上程序保存成name.py,用其他程序进行导入,来看看效果:
好了,我们再运行一下这个语句:
哎?啥么情况?!为什么第二次导入之后没有输出结果呢?
你是否还记得上次课程中,常老师强调过,import一个模块的时候,无论你import多少次,模块只会被导入一次?(这里的效果有点像JAVA中的构造函数)
PS. 这里面要强调一下《标准模块》,Python的标准模块(可以理解成自带模块)可以再Python的参考文档中找到,但是使用标准模块的时候有一点要注意,针对不同的操作系统,模块的定义甚至名称会不同,这在我们写程序的时候是需要注意的。
-------------------------------------------------
领取专属 10元无门槛券
私享最新 技术干货