python杂谈之模块导入

模块导入只在第一次生效

光看标题你可能有点不知所云。假如你有一个模块叫做model里面有一个py文件叫做md.py.文件里面写下如下代码:

# model\md.py
print("123")

在交互式页面输入“import model.md”。(使用window的cmd窗口时请用cd命令导入到model的同级页面,然后打开python的交互模式).会在窗口输出“123”。具体情况如下

import model.md
123

然再在同一个页面再次导入import该模块。无论导入多少次都不会有任何信息输出,你会看到如下内容

import model.md
import model.md
import model.md
import model.md

这就说明后面导入的语句并没有生效。如果想再次生效要使用reload()命令,如下

import imp #python3并没有reload()命令,该命令被放在imp包里
imp.reload(model.md)
123

上面的问题解决了,但是还有一个有意思的事情。python是支持递归导入的。比如模块A导入了模块B,如果我现在有一个文件C我导入了模块A,也相当于导入了模块B.那问题就是如果我像上面一样使用reload()重新导入了A是不是也重新导入了B呢?结论是“否”,有兴趣的可以自己测试一下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值