这篇文章主要介绍了python的模块和包如何导入的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python的模块和包如何导入文章都会有所收获,下面我们一起来看看吧。
在Python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件
注意:模块名要符号标识符的规范
在一个模块中引入外部模块
① import 模块名 (模块名,就是python文件的名字,注意不要py)
② import 模块名 as 模块别名
可以引入同一个模块多次,但是模块的实例只会创建一个
import可以在程序的任意位置调用,但是一般情况下,import语句都会统一写在程序的开头
在每一个模块内部都有一个__ name __ 属性,通过这个属性可以获取到模块的名字
__ name __ 属性值为 __ main __ 的模块是主模块,一个程序中只会有一个主模块,主模块就是我们直接通过 python 执行的模块,执行哪一个文件,哪一个文件就是主模块。
import test_module as test print(test.__name__) print(__name__)
# import m # 访问模块中的变量:模块名.变量名 # 也可以只引入模块中的部分内容,这样就可以直接使用变量名,而不需要使用模块名来访问变量 # 语法 from 模块名 import 变量,变量.... # from m import * # 引入到模块中所有内容,一般不会使用 # 也可以为引入的变量使用别名,这样可以避免有多个模块有相同的变量名造成冲突。 # 语法:from 模块名 import 变量 as 别名
使用下划线 _属性名,当通过 from m import * 引入所有变量时,不会将带有下划线的变量引入。
注意的是,通过 import m 导入模块时,仍然可以通过 m._属性名 来访问
当引入其他模块时,其他模块里面可能会有一些可执行代码,这样在导入时会执行这些模块里的代码,我们想让这些代码只有在该模块作为主模块时才执行
# 在模块的可执行代码前面添加语句 # 编写测试代码,这部分代码,只要当当前文件作为主模块的时候才需要执行 # 而当模块被其他模块引入时,不需要执行的,此时我们就必须要检查当前模块是否是主模块 if __name__ == '__main__': pass
包也是一个模块,当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包
普通的模块就是一个py文件,而包是一个文件夹 包中必须要一个一个 __ init __.py 这个文件,这个文件中可以包含有包中的主要内容
# 我们可以在包里面的__init__.py文件中定义变量或者函数,然后将包作为模块导入,这样就可以访问到这些变量 import package_name # 包里面可以包含其他模块,使用模块里面的变量时,必须使用全路径名:package_name.module_name.属性名 import package_name.module_name # 通过这种方式导入时,只需要写模块名就可以,不需要包名 from package_name import module_name
__ pycache __ 是模块的缓存文件,在编译后会在包下面有一个缓存文件
py代码在执行前,需要被解析器先转换为机器码,然后再执行,所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行,而为了提高程序运行的性能,python会在编译过一次以后,将代码保存到一个缓存文件中,这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可
import sys import pprint # 获取执行代码时,命令行中所包含的参数,该属性是一个列表,列表中保存了当前命令的所有参数 sys.argv print(sys.argv) # 获取当前程序中引入的所有模块,modules是一个字典,字典的key是模块的名字,字典的value是模块对象 sys.modules #pprint 模块它给我们提供了一个方法 pprint() 该方法可以用来对打印的数据做简单的格式化 pprint.pprint(sys.modules) #他是一个列表,列表中保存的是模块的搜索路径 sys.path # 函数用来退出程序 sys.exit() sys.exit('程序出现异常,结束!')
from sys import path # 导入sys模块下的path变量,这是一个list,添加模块的搜索路径 path.append(r"E:\\") 导入模块中的变量 from test0 import k print(k)
关于“python的模块和包如何导入”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“python的模块和包如何导入”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。