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

news/2024/11/16 8:59:40/文章来源:https://www.cnblogs.com/FreakEmbedded/p/18295262

全网最适合入门的面向对象编程教程: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

image

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

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

正文

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

image

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

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

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

image

image

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

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

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

image

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

image

接着点击添加源码组:

image

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

image

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

image

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

image

配置好后点击创建:

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

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

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

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

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

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年7.4-7.8学习总结/暑假day7-11

2024年7.4-7.8学习总结/暑假day7-11 日记 上班有点小累,每天早上六点二十就得起床,每天偷摸着学java,回家了也学点,打算这段时间快速看完javaweb就开始做项目。 java day02-10~04-08 JS对象 Array,String,JSON,BOM,DOM等 Bom 概念:Browser Object Model 浏览器对象模型,允…

基于极大似然估计方法的diffusion

1、极大似然估计就是求概率的最大值2、VAE (1)q(x|z)是编码器的隐向量,可以是任意分布,通过化简,得到了最低下界,最大化这个最低下界就行:(2)类比出DDPm的目标(3)DDPM的最终下界:(4)红色部分化简一波(5)红色部分化简一波(6)红色部分也是高斯分布,让两个高斯分布均值相近…

六大主流商业模式的对比一览图

六大主流商业模式的对比一览图

算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」今日 216/10000 抱个拳,送个礼神经网络设计与选择 参数初始化与优化 学习率调整与正则化 数据预处理与标准化 训练过程与监控 特定模型技巧 其他训练技巧1. 神经网络设…

k8s安装v1.30.2(contanerd容器运行时)实录

一、主机准备主机名 NAT IP 系统 配置k8s-master 192.168.1.201 ubuntu 18.04.6 2C2Gk8s-node01 192.168.1.202 ubuntu 18.04.6 2C2Gk8s-node02 192.168.1.203 ubuntu 18.04.6 2C2G 二、前提 主机配置好网络、ntp,关闭ufw,swap,安装好containerd,runc服务 三、安装步骤 mas…

Docker入门(三):nodejs后端服务部署

本文主要内容是通过dockerfile创建镜像,并通过kubernets(简称k8s)来启动集群服务。最后你会得到一个简单的nodejs提供的api服务。写在前面 需要安装的有node(如何安装?),kubectl(如何安装?) 一,创建nodejs应用 本文主要是用于实践k8s,所以nodejs项目写的非常简单,除了…

如何不错过手机的重要消息-草稿

你是不是手机里有许多未读消息,许多“小红点”,系统通知里有很多通知,久而久之你已习惯并麻木了?你只在自己需要的时候主动去找,而对于推送的信息一概不理。有时也有朋友向你抱怨发给你的信息你久久不回。或者反过来,你经常去看推送的消息,但大多是不太重要的,是广告,…

pandas agg函数的详细介绍与应用

pandas agg函数的详细介绍与应用 参考:pandas agg Pandas 是一个强大的 Python 数据处理库,提供了广泛的方法来进行数据分析。其中,agg 函数是一个非常有用的工具,它允许用户对数据进行多种聚合操作,可以极大地简化数据处理过程。本文将详细介绍 agg 函数的使用方法,并通…

Ollama完整教程:本地LLM管理、WebUI对话、Python/Java客户端API应用

Ollama可以非常方便的管理和部署我们本地大语言模型,老牛同学希望通过本文对Ollama进行一次详细介绍,包括本地大模型管理和使用、WebUI对话界面部署、通过Python和Java使用Ollama的API接口等……老牛同学在前面有关大模型应用的文章中,多次使用了Ollama来管理和部署本地大模…

Python爬虫(1-4)-基本概念、六个读取方法、下载(源代码、图片、视频 )、user-agent反爬

Python爬虫 一、爬虫相关概念介绍 1.什么是互联网爬虫 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据解释1:通过一个程序,根据URL进行爬取网页,获取有用信息 解释2:使用程序模…

一条SQL查询语句是如何执行的??

我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在…

2024最新404错误页面单页源码 HTML错误页面代码

简介:2024最新404错误页面单页源码 HTML错误页面代码 点击下载