python逆向工程:通过代码生成类图
Posted 安迪9468
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python逆向工程:通过代码生成类图相关的知识,希望对你有一定的参考价值。
python逆向工程:通过代码生成类图
大致过程
现在有一个core包,里面有python的代码。
通过core包,生成python的类图,如下:
实施步骤:
1、首先安装graphviz,一个画图工具,地址为:
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.28.0.msi
或者百度下载中心,下载graphviz
2、pyreverse能方便的生成uml类图,pylint里自带了pyreverse这个工具。使用pip安装pylint
pip install pylint
3、使用,可以参考的命令为,core为存放代码的目录
pyreverse -ASmy -o png -p _002 core/
这样就会在和core同级的目录生成2张png图片。
一张类图,一张包图
参考:
http://blog.csdn.net/u013920085/article/details/53285288
延伸:
1、包图图解:
包图中,实线箭线表示python模块之间的引用关系。
A用实线箭线指向B时,表示A模块中import(导入)了B模块。
python模块可以是一个文件(*.py),也可以是一个包(含有__init__.py的Python包)。
注意:基础模块(os、sys等)不会再包图中显示。
2、类图图解:
类图中,实线空心三角表示继承基类(父类)。
A用实线空心三角指向B时,表示A类继承了B类。(如果改为虚线,则表示继承接口,java中常见)
类图中,实线实菱形表示组合关系,如人体的各个部位,不可分割。(如果改为空菱形,则表示聚合关系,如团队由人员组成,可以分割)
A用实线实菱形指向B时,表示A是属于B的、不可分割的组成部分。此时应在实线上标注出B的什么属性来接收A这个单位,作为B的组成部分。
以上是关于python逆向工程:通过代码生成类图的主要内容,如果未能解决你的问题,请参考以下文章