Имеется файл my_module.py
:
def my_func(greeting):
print(f'{greeting} from my_func!')
Вы можете импортировать свою функцию и вызывать ее обычно следующим образом:
>>> from my_module import my_func
>>> my_func('hello')
hello from my_func!
В качестве альтернативы, если вы хотите импортировать функцию динамическис getattr
:
>>> import my_module
>>> getattr(my_module, 'my_func')
<function my_func at 0x1086aa8c8>
>>> a_func = getattr(my_module, 'my_func')
>>> a_func('bonjour')
bonjour from my_func!
Я бы рекомендовал этот стиль только в том случае, если он требуется вашим сценарием использования, например, имя вызываемого метода неизвестно до времени выполнения, методы генерируются динамически или что-то ещевот так.
Хороший ответ, который объясняет getattr
более подробно, - - Зачем использовать встроенные модули setattr () и getattr ()? , и вы можете найти немного больше в http://effbot.org/zone/python-getattr.htm.