Last modified: May 10, 2025 By Alexander Williams

Python Import vs Import: Best Practices

Python offers multiple ways to import modules and packages. Choosing the right import pattern improves code readability and performance. This guide explains the differences.

Basic Import Patterns in Python

The simplest way to import a module is using the basic import statement. It brings the entire module into your namespace.


# Basic import
import math
print(math.sqrt(16))  # Access via module name


4.0

This keeps your namespace clean but requires prefixing with the module name. For more details, see our Python Import Statements Guide.

From-Import Pattern

The from-import pattern lets you import specific objects directly into your namespace.


# From-import
from math import sqrt
print(sqrt(16))  # Direct access


4.0

This is cleaner but can cause namespace collisions. Use it when you need frequent access to specific objects.

Performance Considerations

Both patterns have similar performance. Python imports modules only once due to its caching system. Learn more in our Python Import System Guide.

The real difference comes in memory usage. import math loads the whole module while from math import sqrt only loads the sqrt function.

Best Practices for Clean Code

Follow these rules for maintainable imports:

1. Use basic imports for large modules
2. Use from-import for frequently used objects
3. Avoid wildcard imports (from module import *)
4. Group imports by type (built-in, third-party, local)

Advanced Import Techniques

For dynamic imports, Python offers the importlib module. This is useful for plugins or lazy loading.


# Dynamic import
import importlib
module = importlib.import_module('math')
print(module.sqrt(16))


4.0

For more advanced cases, check our guide on importlib.util.resolve_name().

Conclusion

Choose import patterns based on your needs. Basic imports keep namespaces clean while from-imports offer direct access. For large projects, consistency matters most.

Remember that readability and maintainability should guide your choices. Stick to one style throughout your project for clean, professional code.