


Detailed explanation of the from..import absolute import statement in Python
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.

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

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

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



There is no built-in sum function in C language, so it needs to be written by yourself. Sum can be achieved by traversing the array and accumulating elements: Loop version: Sum is calculated using for loop and array length. Pointer version: Use pointers to point to array elements, and efficient summing is achieved through self-increment pointers. Dynamically allocate array version: Dynamically allocate arrays and manage memory yourself, ensuring that allocated memory is freed to prevent memory leaks.

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

Although distinct and distinct are related to distinction, they are used differently: distinct (adjective) describes the uniqueness of things themselves and is used to emphasize differences between things; distinct (verb) represents the distinction behavior or ability, and is used to describe the discrimination process. In programming, distinct is often used to represent the uniqueness of elements in a collection, such as deduplication operations; distinct is reflected in the design of algorithms or functions, such as distinguishing odd and even numbers. When optimizing, the distinct operation should select the appropriate algorithm and data structure, while the distinct operation should optimize the distinction between logical efficiency and pay attention to writing clear and readable code.

!x Understanding !x is a logical non-operator in C language. It booleans the value of x, that is, true changes to false, false changes to true. But be aware that truth and falsehood in C are represented by numerical values rather than boolean types, non-zero is regarded as true, and only 0 is regarded as false. Therefore, !x deals with negative numbers the same as positive numbers and is considered true.

The H5 page needs to be maintained continuously, because of factors such as code vulnerabilities, browser compatibility, performance optimization, security updates and user experience improvements. Effective maintenance methods include establishing a complete testing system, using version control tools, regularly monitoring page performance, collecting user feedback and formulating maintenance plans.

There is no built-in sum function in C for sum, but it can be implemented by: using a loop to accumulate elements one by one; using a pointer to access and accumulate elements one by one; for large data volumes, consider parallel calculations.

How to obtain dynamic data of 58.com work page while crawling? When crawling a work page of 58.com using crawler tools, you may encounter this...

Copying and pasting the code is not impossible, but it should be treated with caution. Dependencies such as environment, libraries, versions, etc. in the code may not match the current project, resulting in errors or unpredictable results. Be sure to ensure the context is consistent, including file paths, dependent libraries, and Python versions. Additionally, when copying and pasting the code for a specific library, you may need to install the library and its dependencies. Common errors include path errors, version conflicts, and inconsistent code styles. Performance optimization needs to be redesigned or refactored according to the original purpose and constraints of the code. It is crucial to understand and debug copied code, and do not copy and paste blindly.
