首页 > 代码库 > 导入模块 和 包
导入模块 和 包
一 模块
模块一共三种:
python标准库
第三方模块
应用程序自定义模块
在cmd命令终端,查看命令os 来自第三方
time模块来自第三方
模块两种执行方式:
1 用于启动执行
2 用于被调用执行
key:import module:
将执行文件(module)的目录路径插入到sys.path的第一个位置
import的两个过程:
修改调用模块的名字:import logging as log
from 模块 import 变量名
from modname import name1[, name2[, ... nameN]]
二 包(package)
模块非常多,不好找,组织模块的方式:包
在python中,包可以理解成一个文件夹,但是没一个文件夹里必须要有
一个__init__文件
2.1 from 包 import 模块 #格式
但一个py文件和另一个要被引用的文件不在同级目录里,就用 from 包 import 模块
#logger.py文件,,被引用的文件
import logging #logging是第三方模块,
#from log import func
def get_logger():
logger=logging.getLogger()
fh=logging.FileHandler(‘log.txt‘)
logger.addHandler(fh)
return logger
print(‘ok‘)
get_logger()
附上目录里面包和.py 文件的树状结构
#bin是启动文件,要引用logger文件 ,不再同级别,就用from 包 import 模块
#improt logger #直接调用,不在同级目录下,就无法引用
#from 包 import 模块 #引入模块
from log import logger #要用from 这种格式引用logger模块
logger_obj=logger.get_logger()
logger_obj.error(‘error‘)
再调用sc_cal 模块的方法 ,模块名+方法(函数) sc_cal.add()
在哪个文件里运行,哪个文件就是启动文件,就会先从这个文件开始启动
如果bin的文件位置发生变动,就要再添加路径
2.2 同级目录下的被调用模块之间的相互调用
2.3 if __name__==‘__main__‘:
这个表示执行的是此代码所在的文件。 如果这个文件是作为模块被其他文件调用,不会执行这里面的代码。 只有执行这个文件时, if 里面的语句才会被执行。 这个功能经常可以用于进行测试
1.python文件的后缀为.py;
2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入(比如360安全卫士,就是依靠一个个功能模块来实现的,好比360安全卫士本身框架是一个桌面,而上面的图标就是快捷方式,这些快捷方式所指向的就是这一个个功能模块)
3.在python中导入模块一般使用的是import
好了,在确定知道以上几点之后,就可以开始解释if __name__ == "__main__":这个语句了。
首先解释一下if,顾名思义,if就是如果的意思,在句子开始处加上if,就说明,这个句子是一个条件语句。学习if语句的使用是很简单的,当然想要真正灵活运用还需大量的实践。
接着是 __name__,__name__作为模块的内置属性,简单点说呢,就是.py文件的调用方式。
最后是__main__,刚才我也提过,.py文件有两种使用方式:作为模块被调用和直接使用。如果它等于"__main__"就表示是直接执行。
总结:在if __name__ == "__main__":之后的语句作为模块被调用的时候,语句之后的代码不执行;直接使用的时候,语句之后的代码执行。通常,此语句用于模块测试中使用。
2.4 from 包.包 import 模块
from 包.包.模块 import 变量名字
2.5 __init__文件的作用
__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。
通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。
导入模块 和 包