


Relative or absolute import
More complex parts have been implemented since python2.5: importing a module can specify the use of absolute or package-relative imports. The plan is to move to the detail of making absolute imports the default in other versions of Python.
Let's assume you have a package directory like this:
pkg/ pkg/__init__.py pkg/main.py pkg/string.py
The above defines a package called pkg that contains two submodules: pkg.main and pkg.string. Considering the code in 'main.py', what will happen if we execute the statement import string in python2.4 or earlier? It will query the package directory to perform a relative import, find pkg/string.py, and import the contents of the file as the pkg.string module. The boundary name of this module is the namespace of 'string' in the pkg.main module.
This is great if pkg.string is what you want. But what if all you want is python’s basic string module?
There is no clear way to ignore pkg.string and find the underlying module; normally you have to look at the contents of sys.modules, which is a little unclear. Holger Krekel's py.std package provides a neat way to perform imports from the base library, import py;py.std.string.jion(), but that package is not available during the Python installation process.
Reading the code is also not clear enough in terms of relative imports, because readers may confuse the use of string and pkg.string modules. Python users can immediately tell that there are different names between the base library and their own package modules, but you cannot protect your own submodule names in a new version of Python.
From python2.5, you can turn on the import behavior and go directly to absolute import using from __future__ import absolute_import . This absolute import behavior will become a default detail in future versions of Python. Once absolute imports are defaulted, import string will always look for the base library. It is recommended that users use absolute imports as much as possible, so it is appropriate to use from pkg import string in your code. Required in python2.* versions:
from __future__ import absolute_import
Example 1:
Example: Code in module A.B.C:
from . import D # 导入A.B.D from .. import E # 导入A.E from ..F import G # 导入A.F.G,.. 和 F是连着的,中间没有空格
. represents the current directory, .. represents the upper directory, and ... represents the upper directory.
Example 2:
Directory structure:
package/ __init__.py subpackage1/ __init__.py moduleX.py moduleY.py subpackage2/ __init__.py moduleZ.py moduleA.py
You can import module in subpackage1/moduleX.py or subpackage1/__init__.py like this:
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
Note that from ...sys import path is legal, but not recommended. Just directly from sys import path.

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Linux new version
SublimeText3 Linux latest version

Notepad++7.3.1
Easy-to-use and free code editor

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver CS6
Visual web development tools
