Python包的导入说明

2021-07-15 07:05

阅读:455

标签:bsp   方式   文件   说明   搜索路径   目的   soscw   imp   sys   


import
模块 fromimport 模块

上面的代码有什么区别呢?

from 模块 import * 这种导入想象与把模块里面的代码都复制到当前模块中(也就是该语句所在位置),这时候你可以直接使用这个模块里面的变量名称和方法等。
所以这种方式如果变量和方法和当前模块有重名则会不生效。

import 模块 这种导入如果你使用里面的变量或方法,必须加上模块名称前缀。import 的本质是把模块提前解释一遍然后赋值给一个与模块同名
的变量,所以这也就是为什么你使用里面的模块或变量要加模块名的原因。

【包】之所以能导入就是因为它里面有一个__init__.py文件,所以导入包的过程就是解释这个文件的过程。不过在执行这个文件之前它首先要进行搜索也就是
找到这个包在哪里?就去sys.path这个里面定义的搜索路径查找。这里首先包含当前路面、项目的sources roots目录和其他系统内置的路径。所以sys.path
就是这个列表,如果有时候找不到你导入的包,你就可以把包路径添加到这个sys.path列表中。sys.path列表中的第一个元素始终是当前路径。

虽然导入包和导入模块都是 import 语句但是其背后的逻辑不通,导入包是执行包下面的__init__.py,但是导入模块是把模块的内容复制给同名模块名称也就
变成了一个变量。

看下面的例子

技术分享图片

技术分享图片

 

Python包的导入说明

标签:bsp   方式   文件   说明   搜索路径   目的   soscw   imp   sys   

原文地址:https://www.cnblogs.com/yunxizhujing/p/9537222.html

上一篇:Java finally关键字

下一篇:Java I/O


评论


亲,登录后才可以留言!