В Python, если вы хотите программно импортировать модуль, вы можете сделать:
module = __import__('module_name')
Если вы хотите импортировать подмодуль, вы бы подумали, что это будет простой вопрос:
module = __import__('module_name.submodule')
Конечно, это не работает; вы снова получите module_name
. Вы должны сделать:
module = __import__('module_name.submodule', fromlist=['blah'])
Почему? Фактическое значение fromlist
, похоже, не имеет значения, если оно не пустое. Какой смысл требовать аргумент, затем игнорируя его значения?
Большинство вещей в Python, кажется, сделано по уважительной причине, но для моей жизни я не могу придумать разумного объяснения этого поведения.