学习总结2019.4.9
模块
-
模块的概念
1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4 使用C编写并链接到python解释器的内置模块
-
为何要使用模块
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
#1、从文件级别组织程序,更方便管理 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用 #2、拿来主义,提升开发效率 同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率
-
import使用
import module # 1.编译执行模块所对应的py文件,形成对应的pyc文件 # 2.产生该模块自己的全局名称空间 # 3.在使用该模块的全局名称空间中产生一个名字(导入的模块名) # 注: # 1.每一个文件都会产生自己的全局名称空间,且相互不影响 # 2.多次导入,只会编译执行模块一次,将其加载到内存,之后的都是直接对名字的引用
-
起别名
# 通过as关键字可以给模块起别名: 模块名一旦起别名,原模块名就不能再使用 # 1.可以简化模块名字 import mmmmmmmmmmmmmmmmmm3 as my_m3 print(my_m3.num) # 2.可以统一功能 cmd = input('数据库选择 1:mysql | 2:oracle:') if cmd == '1': import mysql as db # mysql.excuse() else: import oracle as db # oracle.excuse() db.excuse()
-
from...import
from 模块名 import 名字1, 名字2, ..., 名字n # 可以指名道姓导入模板中所有想导入的名字 from 模块名 import * # 导入的是模块中的__all__这个列表 # 1、系统默认该列表不会收录_开头的名字 # 2、可以自定义__all__列表来规定外界通过*可以导入的名字 # 不建议直接导入 *,因为可读性差,且极容易出现变量重名 # 模块中有 名字a from 模块名 import * # 可以使用模块中的a a = 20 # 模块中的a就被覆盖了,且在代码上还不能直接看出 # 其别名 from 模板名 import 名字1 as 别名1, ..., 名字n as 别名n
-
自执行与模块的区别
# __name__: # 1.在py文件作为模块被使用时,__name__为模块名 # 2.在py文件自执行时,__name__为字符串 '__main__' print("共有逻辑") if __name__ == '__main__': # 所有自执行的逻辑 print("m6: 我是自执行的") a = 10 # 产生的是全局的名字 else: # 所有模块的逻辑 print("m6: 我被导入执行的") print(a) # 会报错:走else就不可能走if,所以a压根没产生

更多精彩