获取我自己的模块中定义的所有方法

弯曲的

说我有一个像这样的模块:

def print_hello(name):
  " prints a greeting "
  print("Hello, {}!".format(name.title()))

我想在我的模块上设置sys.settrace,所以每当调用模块中的函数时,它都会向stdout打印一个块,如下所示

CALLED FUNCTION: say_hello()
Hello, Alex!

可以预期,trace方法将提取所有被调用的方法,结果是:

$ python3 trace_example.py
Called function: print_hello
Hello, Alex!
Called function: _remove

如何判断当前模块中是否有方法?

(如果您想知道,这是我的跟踪函数:)

import sys
def tracefunc(frame, event, args):
  if event == 'call':
    print("Called function: {}()".format(frame.f_code.co_name))
sys.settrace(tracefunc)
罗德里戈

您可以使用以下方法检查框架对象的模块名称:

frame.f_globals['__name__']

或者,如果您想检查框架堆栈中的上一个调用,(我不确定现在哪个更有趣):

frame.f_back.f_globals['__name__']

当然,请注意f_back可能是None并且全局词典可能没有__name__成员。

更新:如果您有一个模块对象,并想要列出所有顶级可调用对象:

callables = [n for n,f in module.__dict__.items() if hasattr(f, '__call__')]

那也会得到类型,因为从技术上讲它们看上去有点像函数,但是如果需要,您可以进一步完善条件。(有关其他详细信息,请参见另一个问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取给定Perl类或模块中的所有方法和/或属性

来自分类Dev

获取所有方法

来自分类Dev

我可以获取python对象的所有方法吗?

来自分类Dev

我如何从Mono中的c ++获取某个类中所有方法的列表?

来自分类Dev

Ansible:获取自己模块中的所有变量?

来自分类Dev

如何获取类型的所有方法

来自分类Dev

在模块中显示带有特定单词的所有方法和属性的python文档

来自分类Dev

如何确保模块中的所有方法都具有相同的签名?

来自分类Dev

获取模块ruby中定义的所有类

来自分类Dev

导入模块,用于node.js中module.exports的所有方法

来自分类Dev

Ruby模块打印类中的所有方法调用和返回

来自分类Dev

我添加到自定义Android视图的所有方法均导致NullPointerException

来自分类Dev

列出COMobject中的所有方法

来自分类Dev

列出COMobject中的所有方法

来自分类Dev

如何获得R中S4类上定义的所有方法的列表?

来自分类Dev

在Android Studio中,如何获取类可以实现的所有方法的弹出窗口(并添加它们)?

来自分类Dev

在C#中使用自定义属性获取所有方法永远找不到方法

来自分类Dev

有什么方法可以获取模块中定义的功能列表?

来自分类Dev

如何使用dnlib库获取所有方法的说明?

来自分类Dev

如何使用dnlib库获取所有方法的说明?

来自分类Dev

我可以调用对象的所有方法吗?

来自分类Dev

委托所有方法

来自分类Dev

在CakePHP中清除SQL的所有方法

来自分类Dev

使GET变量在所有方法中均可用

来自分类Dev

在类C#中运行所有方法

来自分类Dev

以编程方式调用Java类中的所有方法

来自分类Dev

如何避免激活类中的所有方法?

来自分类Dev

如何折叠 Embarcadero Delphi IDE 中的所有方法?

来自分类Dev

如何使用FOSRestBundle在Symfony 4 Controller的所有方法中设置自定义标头?

Related 相关文章

  1. 1

    获取给定Perl类或模块中的所有方法和/或属性

  2. 2

    获取所有方法

  3. 3

    我可以获取python对象的所有方法吗?

  4. 4

    我如何从Mono中的c ++获取某个类中所有方法的列表?

  5. 5

    Ansible:获取自己模块中的所有变量?

  6. 6

    如何获取类型的所有方法

  7. 7

    在模块中显示带有特定单词的所有方法和属性的python文档

  8. 8

    如何确保模块中的所有方法都具有相同的签名?

  9. 9

    获取模块ruby中定义的所有类

  10. 10

    导入模块,用于node.js中module.exports的所有方法

  11. 11

    Ruby模块打印类中的所有方法调用和返回

  12. 12

    我添加到自定义Android视图的所有方法均导致NullPointerException

  13. 13

    列出COMobject中的所有方法

  14. 14

    列出COMobject中的所有方法

  15. 15

    如何获得R中S4类上定义的所有方法的列表?

  16. 16

    在Android Studio中,如何获取类可以实现的所有方法的弹出窗口(并添加它们)?

  17. 17

    在C#中使用自定义属性获取所有方法永远找不到方法

  18. 18

    有什么方法可以获取模块中定义的功能列表?

  19. 19

    如何使用dnlib库获取所有方法的说明?

  20. 20

    如何使用dnlib库获取所有方法的说明?

  21. 21

    我可以调用对象的所有方法吗?

  22. 22

    委托所有方法

  23. 23

    在CakePHP中清除SQL的所有方法

  24. 24

    使GET变量在所有方法中均可用

  25. 25

    在类C#中运行所有方法

  26. 26

    以编程方式调用Java类中的所有方法

  27. 27

    如何避免激活类中的所有方法?

  28. 28

    如何折叠 Embarcadero Delphi IDE 中的所有方法?

  29. 29

    如何使用FOSRestBundle在Symfony 4 Controller的所有方法中设置自定义标头?

热门标签

归档