iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解Python中的from..import绝对导入语句
  • 842
分享到

详解Python中的from..import绝对导入语句

语句详解Python 2022-06-04 18:06:07 842人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

相对或者绝对import 更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入。这个计划将移动到使绝对的导入成为默认的细节在其他版本的Python中。 我们假设你有

相对或者绝对import
更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入。这个计划将移动到使绝对的导入成为默认的细节在其他版本的Python中。
我们假设你有一个包目录,像下面这样:


pkg/
pkg/__init__.py
pkg/main.py
pkg/string.py

上面定义了一个包称为 pkg 包含 pkg.main 和pkg.string 两个子模块。考虑在‘main.py'中的代码,什么事情会发生如果我们执行语句 import string 在python2.4或者更早的版本?他将会查询包的目录执行一个相对的import,找到pkg/string.py ,导入文件的内容作为pkg.string模块,这个模块的边界的名字是'string'在pkg.main模块中的名称空间。
如果pkg.string是你想要的这个非常不错。但是如果你仅仅想要的是python的基本的string模块?
没有清楚的方法忽略pkg.string以及寻找基本的模块;一般情况下你不得不去查看sys.modules中的内容,那有一点稍微的不清楚。Holger Krekel的py.std包提供了一个整齐的方法执行从基本库中导入的方法,improt py;py.std.string.jion(),但是那个包在python的安装过程是是不可用的。

阅读代码在相对导入方面也是不够清晰的,因为读者可能混淆string和pkg.string模块使用。Python用户可以马上知道那是不同的名称在基本库和自己的包模块之间,但是你不能保护你自己的子模块名字在一个新版本的python中。

从python2.5,你可以打开 import的行为直接去绝对导入使用一个 from __future__ import absolute_import 。这个绝对导入行为将成为一个默认的细节在将来的python中。一旦绝对导入被默认,import string 将总是寻找基本库。建议用户尽可能多的使用绝对导入,因此在你的代码中使用from pkg improt string是适宜的。在python2.*版本中需要:


from __future__ import absolute_import

示例1:
例如:在模块A.B.C中的代码:


from . import D     # 导入A.B.D
from .. import E    # 导入A.E
from ..F import G    # 导入A.F.G,.. 和 F是连着的,中间没有空格

.代表当前目录,..代表上一层目录,...代表上上层目录。

示例2:

目录结构:


package/
 __init__.py
 subpackage1/
  __init__.py
  moduleX.py
  moduleY.py
 subpackage2/
  __init__.py
  moduleZ.py
 moduleA.py

在subpackage1/moduleX.py 或者 subpackage1/__init__.py中可以这样导入module:


from .moduleY import spam
from .moduleY import spam as ham
from . import moduleY
from ..subpackage1 import moduleY
from ..subpackage2.moduleZ import eggs
from ..moduleA import foo
from ...package import bar
from ...sys import path

注意,from ...sys import path是合法的,但是不建议。直接from sys import path就行了。

--结束END--

本文标题: 详解Python中的from..import绝对导入语句

本文链接: https://www.lsjlt.com/news/14634.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中from…import的导入需要注意什么
    这篇文章给大家分享的是有关python中from…import的导入需要注意什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python有哪些常用库python常用的库:1.requesuts;2.scrapy...
    99+
    2023-06-14
  • python语法中导入import与from时的代码怎么编写
    今天就跟大家聊聊有关python语法中导入import与from时的代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。import cgi  i...
    99+
    2023-06-17
  • python中import和from-import的区别解析
    目录. import导入模块的路径两种方式. import 模块名 和 from 模块名 import * 是不同的;.重新导入模块的方法import和from-import的显著区...
    99+
    2022-12-08
    python中import和from-import的区别 python中import from-import
  • python中的import语句怎么用
    这篇文章给大家分享的是有关python中的import语句怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。格式一:import 模块名1 [as 别名1], 模块名2 [as 别名2],…说明:1)将整个模块...
    99+
    2023-06-20
  • 怎么在python中导入绝对和相对路径
    怎么在python中导入绝对和相对路径?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3....
    99+
    2023-06-14
  • Python中import语句用法案例讲解
    目录一. 什么是模块(module)?二. 模块是如何组织的三. 如何导入模块?1. 命名空间3. from … import … 的运行机制五. 导入模...
    99+
    2022-12-29
    Python import语句用法 Python import用法 Python import语句
  • python中的import语句怎么使用
    在Python中,`import`语句用于引入其他模块或者库。它的一般用法如下:```pythonimport module_nam...
    99+
    2023-08-16
    python import
  • 怎么在python中使用import语句引入模块
    今天就跟大家聊聊有关怎么在python中使用import语句引入模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# ...
    99+
    2023-06-14
  • python中的单下划线与双下划线以及绝对导入与相对导入
    目录单下划线与双下划线绝对导入与相对导入硬编码的概念单下划线与双下划线 在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。 ...
    99+
    2024-04-02
  • Python中import模块导入的实现原理
    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入...
    99+
    2023-08-31
    python ai 机器学习 machine learning import 人工智能 ipython 原力计划
  • python文件读取和导包的绝对路径、相对路径详解
    目录一、文件读取的绝对路径和相对路径二、package的绝对路径及相对路径导入2.1 导包以绝对路径导入2.2 导包以相对路径导入三、运行脚本的当前工作路径和绝对路径总结 ...
    99+
    2024-04-02
  • 详解Python的条件语句
    目录1.if语句2.if...else 语句3.if...elif...else 语句4.if 语句的嵌套总结条件语句主要有三种形式:分别为if语句、if...else语句和if.....
    99+
    2024-04-02
  • python相对包导入报“Attempted relative import in non-package”错误怎么解决
    本篇内容介绍了“python相对包导入报“Attempted relative import in non-package”错误怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,...
    99+
    2023-07-05
  • Python中如何使用语句导入模块或包
    小编给大家分享一下Python中如何使用语句导入模块或包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  从一个模块导入全部  from import * mea...
    99+
    2023-06-02
  • Go语言中包的导入规范详解
    Go 语言中包的导入规范详解 在 Go 语言中,包(package)是代码的组织单元,用于组织和管理代码。通过包的导入,我们可以在代码中引用其他包提供的功能和类型。在 Go 中,包的导...
    99+
    2024-03-12
    规范 导入 go语言 标准库
  • idea中import导入的包为灰色如何解决
    在IDEA中,导入的包为灰色通常表示该包未被使用或者未被引用。解决这个问题的方法有以下几种:1. 使用该包中的类或方法:在代码中使用...
    99+
    2023-09-15
    idea
  • Python基础中的的if-else语句详解
    本节主要讲的是if条件不满足时,也可以给提示,就是走else 必须先做类型转换 另一种写法 if-else语句else后的冒号,必须是英文的… 下边为之前...
    99+
    2024-04-02
  • Python中的pass语句语法详析
    目录前言1、对人:作为空间占位符2、对机器:为了语法完整性前言 关于 Python 中的pass语句,它似乎很简单(只有 4 个字母),即使是没有任何编程经验的初学者也能很快地掌握它...
    99+
    2024-04-02
  • Python语言中的if语句详情
    目录1.简单介绍2.if-else语句3.用if语句来处理列表1.简单介绍 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python 根据条...
    99+
    2024-04-02
  • python中模块导入模式详解
    目录模块导入1.1 import导入模块1.2 from 模块名 import 导入模板的方法1.3 as 关键字OS模块操作文件OS模块的作用模块的制作、发布、安装3.1 模块制作...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作