Получить все определенные функции в модуле Python

#python #function #built-in

#python #функция #встроенный

Вопрос:

У меня есть файл my_module.py , который выглядит следующим образом:

 from copy import deepcopy

from my_other_module import foo

def bar(x):
    return deepcopy(x)
 

Я хочу получить список всех функций, определенных в my_module , а не импортированных, в данном случае просто [bar] , а не deepcopy или foo .

Ответ №1:

Вы можете использовать inspect.getmembers with inspect.isfunction , а затем получить все функции, .__module__ свойство которых совпадает с свойством модуля .__name__ :

 from inspect import getmembers, isfunction
from my_project import my_module

functions = [fn for _, fn in getmembers(my_module, isfunction) if fn.__module__ == my_module.__name__]