Почему "импортировать" выражение, но "перезагружать" функцию?

Я знаю, как использовать оба, но мне любопытно, почему было принято решение сделать одно утверждение, а другое - функцией.

Ответ 1

Прежде всего, вы можете импортировать с помощью функции из документацию importlib:

Функция __import__()
   Оператор import является синтаксическим сахаром для этой функции.

например, оба этих утверждения эквивалентны:

from random import randint as random_int

random_int = __import__("random").randint

Однако оператор import значительно выигрывает от альтернативного синтаксиса, где reload не имеет никакого альтернативного значения.

Я также могу представить много начинающих программистов, делающих эту ошибку, если перезагрузка была ее собственным выражением:

from random import *
reload random #does not affect the current namespace!

Так как для функции reload требуется модуль (который не транслируется с помощью from _ import *), кодеры могут задаться вопросом, почему импортированные имена не перезагружаются. связанные с этим ответом