Home  >  Article  >  Backend Development  >  ## Python Modules: When to Use `from ... import` vs `import ...`?

## Python Modules: When to Use `from ... import` vs `import ...`?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 01:41:02334browse

## Python Modules: When to Use `from ... import` vs `import ...`?

Importing Modules: from ... import vs import .

When working with Python modules, there are two common syntax options for importing elements: from ... import and import ..

from ... import

This syntax allows you to import specific elements from a module directly into your namespace. For example, to import the request class from the urllib module:

from urllib import request

This allows you to access the request class directly without prefixing it with urllib.

import .

This syntax imports the entire module into your namespace. For example, to import the entire urllib module:

import urllib

In this case, you would need to access the request class using its fully qualified name:

urllib.request

Interchangeability

In most cases, these two syntaxes are interchangeable. However, there is one key difference:

  • from ... import directly imports elements into your namespace. This can lead to namespace pollution if you import too many elements from multiple modules.
  • import . imports the module itself. This allows you to access all its elements, but they are not directly imported into your namespace.

Standard and Preferred Syntax

There is no absolute standard or preferred syntax between from ... import and import .. The choice is up to the developer and should be based on the specific needs of the situation.

Aliasing Imports

When importing modules using from ... import, you can also specify aliases to avoid name clashes or simplify usage. For example:

from os import open as open_

This lets you use os.open without masking the built-in open() function, which returns file handles.

The above is the detailed content of ## Python Modules: When to Use `from ... import` vs `import ...`?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn