Найдите функции явно определенными в модуле (Python)

Вообще говоря:

F5 может дать Вам ту же страницу, даже если содержание изменяется, потому что это может загрузить страницу из кэша. Но Ctrl - F5 вызывает обновление кэша и гарантирует, что, если содержание изменяется, Вы получите новое содержание.

22
задан Cory 10 July 2009 в 13:42
поделиться

5 ответов

Вы ищете что-то вроде этого?

import sys, inspect

def is_mod_function(mod, func):
    return inspect.isfunction(func) and inspect.getmodule(func) == mod

def list_functions(mod):
    return [func.__name__ for func in mod.__dict__.itervalues() 
            if is_mod_function(mod, func)]


print 'functions in current module:\n', list_functions(sys.modules[__name__])
print 'functions in inspect module:\n', list_functions(inspect)

РЕДАКТИРОВАТЬ: имена переменных изменены с "meth" на "func", чтобы избежать путаницы (здесь мы имеем дело с функциями, а не методами) .

27
ответ дан 29 November 2019 в 05:07
поделиться

Как насчет следующего:

grep ^def my_module.py
4
ответ дан 29 November 2019 в 05:07
поделиться

Вы можете проверить атрибут __ module __ рассматриваемой функции. Я говорю «функция», потому что метод обычно принадлежит классу; -).

Кстати, класс на самом деле также имеет атрибут __ module __ .

2
ответ дан 29 November 2019 в 05:07
поделиться

Каждый класс в Python имеет атрибут __ module __ . Вы можете использовать его значение для выполнения фильтрации. Взгляните на пример 6.14 в погружении в python

1
ответ дан 29 November 2019 в 05:07
поделиться

модуль python inspect , вероятно, то, что вы ищете.

import inspect
if inspect.ismethod(methodInQuestion):
    pass # It's a method
0
ответ дан 29 November 2019 в 05:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: