PyDev中每个类的方法计数

时间:2014-01-07 16:42:05

标签: python eclipse pydev

有没有一种简单的方法来获取这个数字,而无需在Eclipse中滚动每个文件(使用PyDev或其他插件)?我将我的代码分成功能/较小的类。

2 个答案:

答案 0 :(得分:0)

我不知道这是否是您正在寻找的,但您可以使用inspect模块(标准库的一部分)在Python本身执行此操作,而无需咨询IDE。

import inspect

class MyClass():
    def __init__(self):
        pass
    def method1(self):
        pass
    def method2(self):
        pass

# exclude __...__ methods
actual_methods = [member for member in inspect.getmembers(MyClass)
                  if not member[0].startswith('__')]
print(len(actual_methods))

结果:

2

答案 1 :(得分:0)

PyDev没有内置任何东西,但你可以使用脚本功能:

http://pydev.org/manual_articles_scripting.html

要获得类/方法,它可以是:

from org.python.pydev.parser.fastparser import FastDefinitionsParser
from org.python.pydev.parser.visitors.scope.EasyASTIteratorVisitor import EasyASTIteratorVisitor

ps = edit.createPySelection()
contents = ps.getDoc().get()

ast = FastDefinitionsParser.parse(contents)
visitor = EasyASTIteratorVisitor()
ast.accept(visitor)
nodes = visitor.getClassesAndMethodsList()

那应该从PyDev中提供类/方法(然后你可以通过检查节点来完成你需要的逻辑 - 在这种情况下,它将为你提供类/方法/属性)。

脚本引用应该为您提供有关如何将代码绑定到操作的详细信息(请注意,它将在当前版本为2.2.1的内部PyDev Jython解释器中运行)。