当前位置: 首页 > news >正文

wordpress这么用襄阳优化公司

wordpress这么用,襄阳优化公司,中山网站建设文化流程,站长之家seo查询官方网站Python 相对导入与绝对导入Python | Jul 21, 2016 | pythonPython 相对导入与绝对导入#xff0c;这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。Python import 的搜索路径1.在当前目录下搜索该模块2.在环境变量 sys.path 中指定的路径列表中依…Python 相对导入与绝对导入Python | Jul 21, 2016 | pythonPython 相对导入与绝对导入这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。Python import 的搜索路径1.在当前目录下搜索该模块2.在环境变量 sys.path 中指定的路径列表中依次搜索3.在 Python 安装路径的 lib 库中搜索Python import 的步骤python 所有加载的模块信息都存放在 sys.modules 结构中当 import 一个模块时会按如下步骤来进行如果是 import A检查 sys.modules 中是否已经有 A如果有则不加载如果没有则为 A 创建 module 对象并加载 A如果是 from A import B先为 A 创建 module 对象再解析A从中寻找B并填充到 A 的 dict 中相对导入与绝对导入绝对导入的格式为 import A.B 或 from A import B相对导入格式为 from . import B 或 from ..A import B.代表当前模块..代表上层模块...代表上上层模块依次类推。相对导入可以避免硬编码带来的维护问题例如我们改了某一顶层包的名那么其子包所有的导入就都不能用了。但是 存在相对导入语句的模块不能直接运行否则会有异常ValueError: Attempted relative import in non-package这是什么原因呢我们需要先来了解下导入模块时的一些规则在没有明确指定包结构的情况下Python 是根据 name 来决定一个模块在包中的结构的如果是 main 则它本身是顶层模块没有包结构如果是A.B.C 结构那么顶层模块是 A。基本上遵循这样的原则如果是绝对导入一个模块只能导入自身的子模块或和它的顶层模块同级别的模块及其子模块如果是相对导入一个模块必须有包结构且只能导入它的顶层模块内部的模块如果一个模块被直接运行则它自己为顶层模块不存在层次结构所以找不到其他的相对路径。Python2.x 缺省为相对路径导入Python3.x 缺省为绝对路径导入。绝对导入可以避免导入子包覆盖掉标准库模块(由于名字相同发生冲突)。如果在 Python2.x 中要默认使用绝对导入可以在文件开头加入如下语句from future import absolute_importfrom future import absolute_import这句 import 并不是指将所有的导入视为绝对导入而是指禁用 implicit relative import(隐式相对导入), 但并不会禁掉 explicit relative import(显示相对导入)。那么到底什么是隐式相对导入什么又是显示的相对导入呢我们来看一个例子假设有如下包结构thing├── books│ ├── adventure.py│ ├── history.py│ ├── horror.py│ ├── __init__.py│ └── lovestory.py├── furniture│ ├── armchair.py│ ├── bench.py│ ├── __init__.py│ ├── screen.py│ └── stool.py└── __init__.py那么如果在 stool 中引用 bench则有如下几种方式:import bench # 此为 implicit relative importfrom . import bench # 此为 explicit relative importfrom furniture import bench # 此为 absolute import隐式相对就是没有告诉解释器相对于谁但默认相对与当前模块而显示相对则明确告诉解释器相对于谁来导入。以上导入方式的第三种才是官方推荐的第一种是官方强烈不推荐的Python3 中已经被废弃这种方式只能用于导入 path 中的模块。相对与绝对仅针对包内导入而言最后再次强调相对导入与绝对导入仅针对于包内导入而言要不然本文所讨论的内容就没有意义。所谓的包就是包含 init.py 文件的目录该文件在包导入时会被首先执行该文件可以为空也可以在其中加入任意合法的 Python 代码。相对导入可以避免硬编码对于包的维护是友好的。绝对导入可以避免与标准库命名的冲突实际上也不推荐自定义模块与标准库命令相同。前面提到含有相对导入的模块不能被直接运行实际上含有绝对导入的模块也不能被直接运行会出现 ImportErrorImportError: No module named XXX这与绝对导入时是一样的原因。要运行包中包含绝对导入和相对导入的模块可以用 python -m A.B.C 告诉解释器模块的层次结构。有人可能会问假如有两个模块 a.py 和 b.py 放在同一个目录下为什么能在 b.py 中 import a 呢这是因为这两个文件所在的目录不是一个包那么每一个 python 文件都是一个独立的、可以直接被其他模块导入的模块就像你导入标准库一样它们不存在相对导入和绝对导入的问题。相对导入与绝对导入仅用于包内部。
http://wiki.neutronadmin.com/news/181832/

相关文章:

  • 网站后端做留言板功能vps装网站管理系统
  • 公司手册制作网站网站形式的具体例子
  • 恢复原来的网站广州站西手表
  • 只做网站不推广能行吗制作图片的软件哪个好用
  • 嘉兴网站建设系统建设企业网站方法
  • wordpress给公司建站英德住房和城乡建设局网站
  • 平凉市住房和城乡建设厅网站合肥公司建设网站
  • 思茅北京网站建设wordpress 4.8.3 漏洞
  • ps如何做网站轮播图快速排名新
  • 哈尔滨建站公司可以不使用备案的网站名吗
  • 买卖网站建设怎么免费做公司网站
  • 成华区微信网站建设推广金融网站策划
  • 网站赞赏网站怎么做防360拦截
  • 自媒体交易网站开发wordpress三栏模板下载
  • 英文网站外链查询荣添网站建设优化
  • 用dw做网站用div布局现在室内设计师好做吗
  • 网站可以做动态背景吗网站建设中 页面
  • 企业网站建设的步骤过程部队网站源码
  • 禅城网站建设代理定制v
  • 什么叫做网站整站上海十大科技公司
  • 国内大一html网站简单设计桂林建设银行招聘网站
  • cdr做的网站效果怎么直接用洛阳疾控最新通告今天
  • 做好的网站怎么注销嘉兴手机网站制作
  • 网站开发静态怎样转成动态html5特效网站
  • 英文美食网站怎么做wordpress 4.1 主题
  • 门户网站建设需求文档网站名称与域名
  • 政协网站 两学一做专题研讨wordpress标题颜色
  • 手机app开发上市公司seo网站推广 杭州
  • 重庆快速排名网站的优化方案
  • 二手交易网站开发可参考文献直播网站建设模板