1.模块的使用 2.为什么要使用模块 1.从文件级别组织程序,更方便管理 2.引用别人写的,提升效率 3.如何实用模块 import spam 第一次导入模块发生几件事: 1.产生一个新的名称空间 2.运行原文件代码产生的名字都存放在1的名称空间中 运行过程中gloabl关键字指向改名称空间 当前文件的名称空间sapm 名称空间指向了spam.py运行文件的名称空间 def read1(): print(money) import spam import spam #重复导入时重复引用不是重新加载,不会重复加载 money=1 spam.money #原来属性的不会冲突 #引用的源文件的属性 spam.read1 强调:宝导入的模块在执行的过程中使用自己的独立的名称空间. 2.起别名 import spam as sm print(sm.money) 3.一行导入多个模块 import time,sys,spam 4.如何使用模块 from 模块 import 名字 直接用名字 优点:引用方便 缺点:容易和当前名称空间产生冲突 from span import money as m from span import money.read1 from span import * #名字全部倒入 #* 容易冲突 #_money 下划线开始的名字* 无法导入 5.python 文件的两种用途 1.直接运行,当做脚本执行 2.当做模块被导入使用 __name__的值在引用的时候就是文件名spam __name__ 在本地引用的时候就是__main__ 6.模块的搜索路径 1. 内存 ---> 内置模块 ---> 自己定义的模块在sys.path 查找先在内存里面查找 ['D:\PycharmProjects\wadsd\day5', 'D:\PycharmProjects\wadsd', 执行文件所在的文件夹 'D:\Python36\python36.zip', 'D:\Python36\DLLs', zip相当于文件夹 'D:\Python36\lib', 'D:\Python36', 'D:\Python36\lib\site-packages'] print(sys) # 内置模块C语言写的 <module 'sys' (built-in)> sys.path.append(r'D:PycharmProjectswadsdday5 2_包包的使用.py') sys.path路径加上就可以找到包 或者放入同一路径 import spam,time time,sleep(10) import span 二 包 包就是文件夹,组织起来调用 包就是包含了__init__.py的文件夹 可以往改文件夹下放一堆子模块. 导入调用 py3的时候包下面没有init.py文件也不会报错.py2不行 包的使用导入时 但凡是在导入时出现点,这是导入包才有的语法 点的左边必须是一个包 使用的时候没有这种限制 包的导入是在以当前执行文件的文件夹下,为相对路径进行查找对应关系 from 包 import 从哪里导入什么 import sys sys.path.append("主程序目录") sys.path.append("ATM") 5.日志模块的详细用法; 1.logger 产生日志 logger1=logging.getLogger('访问日志') 2.Filter 几乎不用 3.Hnaderler:接收logger传过来的日志,进行日志格式化, 可以打印到终端,也可以打印到文件 sh =logging.StreamHanderler() 打印到终端. fh1=logging.FilterHandler('s1.log',encoding='utf-8') logger1.setLevel(30) sh.setLevel(10) 4. Formatter : 日志格式