python module docs是干嘛的_学了半天,import 到底在干啥?

Python凭什么就那么好用呢?

毫无疑问,大量现成又好用的内置/第三方库功不可没。

那我们是怎么使用它们的呢?

噢,对了~是用的import xxx这个语句。

之所以会有此一问,也是之前有一次使用PyCharm进行开发时(又)踩了个坑……

废话少说,先讲问题

像下面这样一个项目结构:Projetc_example

|-- A

|-- alpha.py

|-- beta.py

|-- B

|-- theta.py

|-- main

|-- main.py

假设要在main.py中导入theta.py:# main/main.py

from B import theta

显然会导致我们所不希望的问题,即Python不知道要到哪里去找这个名为B的模块(包是一种特殊的模块):Traceback (most recent call last):

File "main/main.py", line 1, in 

from B import theta

ModuleNotFoundError: No module named 'B'

可是这就奇了怪了,为啥同样的代码,在PyCharm里运行就是好的了呢?

import的查找路径

于是我们不辞艰辛,上下求索,原来在Python中,import语句实际上封装了一系列过程。

1. 查找是否已导入同名模块

首先,Python会按照import xxx中指定的包名,到sys.modules中查找当前环境中是否已经存在相应的包——不要奇怪为什么都没有导入sys这个模块就有sys.modules了。

sys是Python内置模块,也就是亲儿子,导入只是意思一下,让我们这样的外人在导入的环境中也可以使用相关接口而已,实际上相应的数据对Python而言从始至终都是透明的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值