我想通过python ast
模块从类中获取所有固有的方法。在我的情况下,我必须使用扫描工具来读取* .py文件以获取所有类'固有的方法列表。
源代码:
# test.py
from PyQt5 import QtWidgets
class InheritedClass(QtWidgets.QDialog, QtWidgets.QMainWindow):
def closeEvent(self, bool):
pass
AST代码:
import ast
file = open('test.py', 'r')
source = file.read()
class NodeVisitor(ast.NodeVisitor):
def visit_ClassDef(self, node):
for base in node.bases:
print base.__dict__
node = ast.parse(source)
visitor = NodeVisitor()
visitor.visit(node)
是否有办法获得InheritedClass
所固有的所有方法。我的想法是遍历类节点的所有父节点(node.bases属性),然后获取它们的方法。但是当我想从父级bases
属性中检索所有方法时,我有一个阻止程序。我对其他方面持开放态度。