首页 / PYTHON / 分层python导入
分层python导入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了分层python导入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1078字,纯文字阅读大概需要2分钟。
内容图文
![分层python导入](/upload/InfoBanner/zyjiaocheng/656/8e20fb26fb974858a0a213475b3ceb1a.jpg)
因此,我有两个模块A和B,以及另一个已安装的模块C.假设我在A和B中使用了C的某些方法.我在B中也需要模块A.因此从逻辑上讲,我的导入将是:
A :
import C
B:
import A
逻辑告诉我,B将包含A和C中的函数.但是,默认情况下,这种方式不起作用.从某种意义上说,要引用模块A中C语言中的任何函数,我们需要额外的名称空间引用级别
A.C.some_c_module()
我发现我们可以在不使用讨厌的“ C语言如” ifdef克隆的情况下,在A和B中导入C,并且可以正常工作.我的问题是,两次导入此类模块是否会受到惩罚?从某种意义上说,python很聪明,足以知道A.C.some_module == C.some_module?还是通过这样做我只是一个坏男孩?
解决方法:
两次导入一个模块不会导致它被加载两次. Python会一次加载该模块并保留对其的引用.是的,Python足够聪明,可以知道两个版本相同.您可以根据需要导入任意数量的模块,它只会“花费”您一次.
顺便说一句,“ B将包含来自A和C的函数”是错误的原因是,当您在A.py中导入C时,A不会“包含C的函数”.相反,A包含对C本身的引用.因此,当您从B内部导入A时,您将获得对C的引用,而不是对C内部函数的引用.如果通过使用C import blahBlah将C的各个部分直接导入A的命名空间,那么当您导入A时,以A成员的身份访问这些功能.
# A.py
from C import blah
# B.py
import A
A.blah # this will work
内容总结
以上是互联网集市为您收集整理的分层python导入全部内容,希望文章能够帮你解决分层python导入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。