import module
импортирует модуль целиком. Доступ к функциям и классам модуля осуществляется через module.function()
.
from module import function
импортирует только указанную функцию/класс. Доступ к ней осуществляется напрямую, например, function()
, без указания имени модуля.
Разница между from module import function
и import module
заключается в способе доступа к функциям и классам, определенным в модуле, а также в пространстве имен, которое они занимают.
import module
:
module.function_name()
.from module import function
:
function_name()
.Пример:
# Файл: my_module.py
def my_function():
return "Hello from my_module!"
# Использование import module
import my_module
print(my_module.my_function()) # Вывод: Hello from my_module!
# Использование from module import function
from my_module import my_function
print(my_function()) # Вывод: Hello from my_module!
Когда что использовать:
import module
, если вам нужно использовать много разных элементов из модуля или если существует вероятность конфликта имен.from module import function
, если вам нужна только одна или несколько конкретных функций/классов, и вы уверены, что это не вызовет конфликтов имен, и хотите сделать код более кратким.Также, часто стараются избегать конструкции from module import *
, потому что она импортирует все имена из модуля в текущее пространство имен, что практически гарантирует возникновение конфликтов имен и усложняет отладку.