为了账号安全,请及时绑定邮箱和手机立即绑定

当模块多次导入时,python是否会优化模块?

当模块多次导入时,python是否会优化模块?

慕勒3428872 2019-10-11 10:23:38
如果代码的某个子模块加载了大模块,那么从该命名空间引用该模块而不是再次导入该模块有什么好处?例如:我有一个模块MyLib,它广泛使用ReallyBigLib。如果我有导入MyLib的代码,我应该像这样将模块挖出来import MyLibReallyBigLib = MyLib.SomeModule.ReallyBigLib要不就import MyLibimport ReallyBigLib
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

正如其他人指出的那样,Python维护着所有已导入模块的内部列表。首次导入模块时,模块(脚本)将在其自己的名称空间中执行直到结束,内部列表将更新,并在import语句之后继续执行。


试试这个代码:


   # module/file a.py

   print "Hello from a.py!"

   import b


   # module/file b.py

   print "Hello from b.py!"

   import a

没有循环:只有缓存查找。


>>> import b

Hello from b.py!

Hello from a.py!

>>> import a

>>>

Python的优点之一是,一切都演变为在命名空间中执行脚本。


查看完整回答
反对 回复 2019-10-11
  • 3 回答
  • 0 关注
  • 735 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信