Вы хотите
my_function = getattr(__import__('my_apps.views'), 'my_function')
Если вам случится узнать имя функции во время компиляции, вы можете сократить это значение до
my_function = __import__('my_apps.views').my_function
Это загрузит my_apps.views
, а затемприсвойте его my_function
атрибут локальному my_function
.
Если вы уверены, что вам нужна только одна функция, то это приемлемо.Если вам нужно более одного атрибута, вы можете сделать:
views = __import__('my_apps.views')
my_function = getattr(views, 'my_function')
my_other_function = getattr(views, 'my_other_function')
my_attribute = getattr(views, 'my_attribute')
, так как он более читабелен и экономит некоторые вызовы на __import__
.Опять же, если вы знаете имена, код может быть сокращен, как указано выше.
Вы также можете сделать это с помощью инструментов из модуля imp , но это более сложно.