首页 > 代码库 > 模块与包
模块与包
# 一# 模块## 模块一共三种:## python标准库# 第三方模块# 应用程序自定义模块## 模块两种执行方式:#用于启动执行#用于被调用执行# 调用方式1 (推荐)# import module1# import module2# 调用方式2# import module1,module2# import time,sys,os# 执行被调用的模块 (第二次不会被执行)# 一个模块可以在当前位置import多次,但只有第一次导入会执行源文件内的代码,原因是:第一次导入就会将模块包含的内# 容统统加载到内存了,后续的import语句仅是对已经加载到内存中的模块对象增加了一次引用,不会重新执行模块内的语句# from module1 import * # 慎用# 当你想限制*导入的内容的时候,可以在模块中添加以下语句__all__=[]# 中括号中写的字符串形式的变量就是指定*可以导入命名# 语句提供了一个简单的方法来导入一个模块中的所有项目。# 然而这种声明不该被过多地使用。大多数情况, Python# 程序员不使用这种方法,因为引入的其它来源的命名,很可能覆盖了已有的定义。# 总结模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块# 编辑起始路径# import os,sys# BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# print(BASE_DIR)# sys.path.insert(0,BASE_DIR)# 在python中,包可以理解成一个文件夹,但是每一个文件夹里必须要有一个__init__文件# 只要是第一次导入包或者是包的任何其他部分,都会依次执行包下的__init__.py文件# 编译python文件# 当模块导入的时候会在模块文件内部产生一个pyc文件,这个文件是python的预编译文件,# 当下次读取的时候就会加速,这样就可以提高模块导入的时候的执行效率(只有导入模块的时候才会生成这个文件)# 关于__name__# 当文件本身运行自己的时候__name__=__main__# 单文件被当作模块调用的时候__name__=文件名# 一般当你的代码是个测试代码,不想被别人调用的时候可以加上判断语句# if __name__=__main__:#要执行的代码# 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,这是关于包才有的导入语法# 凡是在导入时带点的,点的左边都必须是一个包# 对于导入后,在使用时就没有这种限制了,点的左边可以是包,模块,函数,类(它们都可以用点的方式调用自己的属性)。# 需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误,如:from a import b.c是错误语法
模块与包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。