全网最适合入门的面向对象编程教程:13 类和对象的 Python 实现-可视化阅读代码神器 Sourcetrail 的安装使用

摘要:

本文主要介绍了可视化阅读代码神器Sourcetrail的安装与使用,包括软件简介和特性、下载地址、安装方式、新建工程和如何查看分析源码,同时简单介绍了PyCharm中Sourcetrail插件的使用。

原文链接:

FreakStudio 的博客

往期推荐:

学嵌入式的你,还不会面向对象??!

全网最适合入门的面向对象编程教程:00 面向对象设计方法导论

全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念

全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类

全网最适合入门的面向对象编程教程:03 类和对象的 Python 实现-为自定义类添加属性

全网最适合入门的面向对象编程教程:04 类和对象的Python实现-为自定义类添加方法

全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签

全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装

全网最适合入门的面向对象编程教程:07 类和对象的Python实现-类型注解

全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器

全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系

全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继承和里氏替换原则

全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法

全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志

更多精彩内容可看:

给你的 Python 加加速:一文速通 Python 并行计算

一文搞懂 CM3 单片机调试原理

肝了半个月,嵌入式技术栈大汇总出炉

电子计算机类比赛的“武林秘籍”

一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库

文档和代码获取:

可访问如下链接进行对文档下载:

https://github.com/leezisheng/Doc

本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码进行可视化阅读便于读者理解。

相关示例代码获取链接如下:https://github.com/leezisheng/Python-OOP-Demo

正文

这里,我们可以使用 Sourcetrail 软件对代码进行可视化阅读。Sourcetrail 是一个免费开源、跨平台的可视化源码探索项目,可以使用图形直观地表示了调用上游和下游,类成员列表等等细节,使得理解源代码的结构变得很容易。下图是我们用 Sourcetrail 分析示例代码得到的图形化类图,可以很容易的看出 SerialClass 和 SensorClass、MasterClass 间的继承关系以及每个类的方法和属性:

关于 Sourcetrail 的下载安装可以查看:

https://github.com/CoatiSoftware/Sourcetrail/releases

我们选择 Sourcetrail_2021_4_19_Windows_64bit_Installer.zip 版本进行下载,下载安装包解压后,可以看到有一个 msi 文件,双击安装即可:

如果安装过程中遇到错误代码 2053 提示,查看以下链接解决:

https://zhuanlan.zhihu.com/p/356008224

接下来我们来看如何用 sourcetrail 分析源代码,打开 sourcetrail 软件,首先点击新建工程:

接着填写项目名称和需要解析文件的地址:

接着点击添加源码组:

选择 Python 文件,创建空的源码分析组,点击 next:

按照下图所示填写信息即可:

这里,使用虚拟环境的同学可以使用 conda env list 获取虚拟环境解释器位置:

配置好后点击创建:

开始创建,注意一定要勾选 shallow python index 选项,点击开始:

这里,可以看到我们的分析结果,Sourcetrail 将解析结果按“文件”、“模块”等大致分了类,可以极大便利我们阅读他人代码的工作。点击 classes:

可以看到我们文件中包含哪些类:

点击 SerialClass 类可以看查看属性和方法,右边有对应源码:

点击任意方法,可以看到该方法的调用情况:

项目中的符号都可以点击,支持来回跳转,还支持模糊搜索。左侧源码结构非常清晰,对于熟悉陌生代码结构非常有用。

我们也可以在 Pycharm 中安装插件 idea-sourcetrail 与其配合使用,sourcetrail 支持跟你喜欢的代码编辑器链接,在编辑器中右键,就能激活 sourcetrail 查看上下可视化内容。当然也可以反过来,在 sourcetrail 中点击,直接可以在编辑器中编辑该文件。

点击安装并应用,重启 IDE。具体使用可以参考:

https://cloud.tencent.com/developer/news/594864

Sourcetrail 还可以与其他编辑器链接,比如: Atom, Clion, Eclipse, Emacs, IntelliJ IDEA 等等。还有更多功能可以参见官方文档:

https://www.sourcetrail.com/python/

实际上这类源码分析工具还有很多,比如 Source Insight 和 Understand。

全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用的更多相关文章

  1. Java基础--面向对象编程1(类与对象)

    1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现 ...

  2. Python开发基础-Day17面向对象编程介绍、类和对象

    面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...

  3. python基础之面向对象编程介绍、类和对象

    面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...

  4. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  5. 最适合入门的Laravel中级教程(一)

    Laravel 是一个全栈框架: 我们使用 Laravel 开发业务常见有 3 个方向: 前端页面和后端逻辑混合的应用 主要是面向对 SEO 有需求的项目: 比如说新闻资讯博客文章等: 一般在控制器中 ...

  6. Python:面向对象编程3 定制类(有更新)

    Python:面向对象编程3  定制类(有更新) ⚠️本文主要内容为对Data model相关知识点的提取学习记录.(内容来自文档和部分网页教程案例) ⚠️:这个连接指向<流畅的python&g ...

  7. [.net 面向对象编程基础] (9) 类和类的实例

    [.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...

  8. [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)

    [.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...

  9. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性——多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  10. Python入门之面向对象编程(一)面向对象概念及优点

    概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...

随机推荐

  1. 【iOS逆向与安全】iOS远程大师:通过H5后台远程查看和协助iPhone设备

    前言 在移动设备测试和远程协助的过程中,能够远程查看和协助iPhone设备是一项非常实用的功能.为了解决这一需求,我开发了一款名为iOS远程大师的产品,允许用户通过H5后台界面查看和协助越狱或非越狱的 ...

  2. 如何使用Charles查看页面接口请求?

    1.Charles下载地址: https://www.charlesproxy.com/latest-release/download.do 2.如何抓取浏览器的操作 2.1 点击映射 2.2 点击映 ...

  3. 源码分析——MyBatis与Spring整合后如何保证SqlSession线程安全

    在MyBatis架构中SqlSession是提供给外层调用的顶层接口,它是MyBatis对外暴露的最重要的接口,用户通过该接口即可完成数据库的全部操作.在上文中我们明白了我们常用的Mybatis动态代 ...

  4. 宝塔面板6.X在Docker中安装宝塔面板5.9.1 – 我是不是太闲了?

    我是不是太闲了,问你们三遍,场景是这样的,我在一台VPS里面安装宝塔面板6.X,宝塔面板的软件商店有Docker管理器2.0这一个免费好用的小玩意.大鸟安装好Docker管理器2.0,然后在Docke ...

  5. rhcsa练习题容易错的地方

    rhcsa练习题容易错的地方 yum仓库的配置 注意 配置yum仓库的时候,baseurl的路径不要写错 dnf clean all && dnf makecache //检查错误 s ...

  6. C语言-使用malloc导致的奔溃问题

    在使用malloc.memset.free的过程中,出现了程序奔溃,大致现象如下. 程序的实现大致如下: #include <stdio.h> #include <stdlib.h& ...

  7. 鸿蒙HarmonyOS实战-ArkTS语言基础类库(XML)

    前言 数据传输的数据格式有以下几种常见的格式: JSON(JavaScript Object Notation):JSON是一种轻量级的数据交换格式,可读性高且易于解析.它使用键值对的方式表示数据,并 ...

  8. LeetCode 621. 任务调度器 (Java)

    题目: 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.C ...

  9. SpringBoot系列(四)使用spring-kafka实现生产者消费者demo代码

    一.引入spring-kafka的maven依赖 <dependency> <groupId>org.springframework.kafka</groupId> ...

  10. INFINI Console 与华为鲲鹏完成产品兼容互认证

    何为华为鲲鹏认证 华为鲲鹏认证是华为云围绕鲲鹏云服务(含公有云.私有云.混合云.桌面云)推出的一项合作伙伴计划,旨在为构建持续发展.合作共赢的鲲鹏生态圈,通过整合华为的技术.品牌资源,与合作伙伴共享商 ...