Я не уверен, что вы подразумеваете под "функциональным образом" - вы имеете в виду, как в функциональном программировании ? Этого не произойдет (поскольку вы по своей сути пытаетесь изменить объект, что противоположно FP). Или вы имеете в виду что-то вроде «способ, который работает»?
Для последней интерпретации большая проблема - это часть import *
- среди множества проблем, которые предлагают не использовать это, вы собираетесь запустить smack в одну: она выполняет снимок независимо от того, какие имена уровня модуля связаны в данный момент (или только те, которые перечислены в __all__
в модуле, если он определен) - будущие изменения в привязках имен никогда не будут отражены в модулях, которые ранее делали import *
.
Почему вы считаете, что вам нужно объединить пространство имен template_module
с пространством имен импортирующего модуля? Если вы только что выполнили обычный import template_module as tm
, то простое обращение ко всем соответствующим именам как tm.this
, tm.that
будет работать просто отлично (включая получение всех изменений в привязках до момента использования - другими словами , он использует подход с «поздним связыванием», который вам здесь необходим).