python项目入门新手攻略

news2025/2/23 17:41:25

最近工作需要接手了代码量比较大的python开发的项目,平时写python不多,记录一下如何熟悉项目。

分析调用流程-pycallgraph

因为代码量比较大,所以希望通过工具生成代码调用流程,因此用到了pycallgraph。

pycallgraph(Python Call Graph)是一个专业的代码调用流程可视化工具,地址在这里。

安装步骤

环境Ubuntu2004,指令如下:

sudo apt install python3-pycallgraph

使用方式

pycallgraph有两种使用方式,一是命令行,二是代码调用

# 命令行调用
pycallgraph graphviz -- 测试的脚本

执行完成后当前目录下会出现一张图片,显示所有涉及到的调用流程,包括python内部的实现

生成的流程图如下:

简单的程序可以直接用命令行实现,不过复杂的程序这样看起来太乱了,推荐使用代码过滤。

from pycallgraph import PyCallGraph
from pycallgraph import Config
from pycallgraph import GlobbingFilter
from pycallgraph.output import GraphvizOutput
# 以上是需要引入的
from banana import Banana

# 设置过滤器
config = Config()
# exclude是不包含,include是包含
config.trace_filter = GlobbingFilter(exclude=[
    'pycallgraph.*',
    '*.secret_function',
])

# 设置输出文件的名称
graphviz = GraphvizOutput(output_file='filter_exclude.png')

# 运行的代码加在这一行后面
with PyCallGraph(output=graphviz, config=config):
    banana = Banana()
    banana.eat()

这样可以选择性的呈现流程,选择之后的效果图(不是上面这份代码的图)如下:

这样清晰多了。

生成uml图

安装步骤

sudo apt install pylint

使用方式

pyreverse -ASmy -o png  测试的脚本或者目录

运行完成之后当前目录会出现uml图,可以查看类以及提供的接口。

参考链接

python的UML类图自动生成工具--pyreverse安装和使用-CSDN博客

使用pycallgraph和graphviz查看函数调用图-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LiveGBS user/save 逻辑缺陷漏洞复现(CNVD-2023-72138)

0x01 产品简介 LiveGBS是安徽青柿信息科技有限公司研发的一款国标(GB28181)流媒体服务软件,可提供提供用户管理及Web可视化页面管理,开源的前端页面源码;提供设备状态管理,可实时查看设备是否掉线等信息等。 0x02 漏洞概述 LiveGBS user/save 接口处存在逻辑缺陷漏洞,未…

纯血鸿蒙APP实战开发——发布图片评论

介绍 本示例将通过发布图片评论场景,介绍如何使用startAbilityForResult接口拉起相机拍照,并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机,拍照后获取图片地址。 实现思路 创建CommentData类&#…

树,二叉树的基本概念介绍,二叉树的性质

目录 树 树的定义 树的相关概念 树的存储结构 树在实际中的运用(表示文件系统的目录树结构 ) 二叉树 二叉树的定义 现实中的二叉树 二叉树的特点 特殊的二叉树 1.斜树 2.满二叉树 3.完全二叉树 二叉树的性质 性质1:二叉树的第…

MyBatis(XML映射器操作)

文章目录 XML映射器操作(XxxMapper.xml)文件目录1.基本介绍1.优点2.常用顶级元素 2.环境配置1.在原来的父模块下创建一个子模块2.删除没用的两个文件夹3.创建基本目录4.父模块的pom.xml5.jdbc.properties6.mybatis-config.xml7.测试使用MonsterMapperTes…

芒果超媒财报解读:科技加持下,如何蜕变为内容“全科生”?

在降本增效和内容为王的基调下,国内头部长视频平台正在拥抱增长。 爱奇艺率先公布2023年财务数据,实现归母净利润19.25亿元,与2022年亏损1.36亿元相比,扭亏为盈且增幅显著。 而近日,随着新一季《浪姐》播出&#xff…

一文全面了解 Kaggle 平台:数据科学和机器学习的理想之地

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 在数据科学(Data Science)领域,Kaggle 可以称得上是一座人人都想挑战的高峰。Kaggle 是一个国际知名的数据科学竞赛平台,由 Anthony Goldbloom 和 Ben Ha…

内网神器Cobalt Strike隐藏特征与流量混淆.

由于上次还没有写好https上线的东西,今天加班加点的弄出来了。 本文内容如有错误,望及时告知,以免误导他人. Cobalt Strike 特征隐藏与流量混淆 大致内容: 修改默认端口 服务器设置禁Ping Cobalt Strike默认证书修改 CDN隐藏…

【c++】mutable是一个关键字,用于指定一个类成员可以在一个const成员函数中被修改。

mutable是一个关键字,用于指定一个类成员可以在一个const成员函数中被修改。通常,当一个成员函数被声明为const时,这意味着这个函数不能修改它所属的对象。然而,有时候你可能需要在一个const成员函数中修改某个成员变量。这时,你就可以使用mutable关键字。webrtc的StunReq…

VOS系统录音文件REC转MP3,REC录音转WAV与WAV转MP3具体项目中实现方式,以及占用空间变化!

前面讲解了VOS3000系统的录音REC转MP3的安装步骤,不清楚的,可以移步这里查看:http://t.csdnimg.cn/OXNT9 或者 点击这里查看安装步骤,下面继续讲下他们的使用方法,以及实际项目中的运用,首先我们需要明确我…

记录一下因网络问题导致的安装Python3.8和SuperSet的报错

【报错1】Python3.8的环境报错 【背景说明】 我目前在搭建数仓最后一个环境-->将MySQL的数据用SuperSet展示,安装SuperSet需要提前在Linux上安装Python环境,下面截图就是我在创建Python3.8的环境报错 命令为:(base) [dahuahadoop102 ~]…

shell脚本,删除30天以前的日志,并将日志推送到nas,但运行出现/bin/bash^M。

删除30天以前的日志 将日志推送到nas中,然后删除pod中的日志 pod挂载到本地 运行出现/bin/bash^M 1、删除30天以前的日志: #! /bin/bash# 定义源日志目录 LOG_DIR/home/log/ # 删除日志 find $LOG_DIR -type f -name "*.log" -mtime 30 -exec…

沐风老师3DMAX一键生成桌子插件TableMaker使用方法

3DMAX一键生成桌子插件TableMaker使用教程 3DMAX一键生成桌子插件TableMaker,参数化方式快速创建各种样式桌子模型。 【适用版本】 3dMax2011-2025(不仅限于此范围) 【安装方法】 3DMAX一键生成桌子插件无需安装,使用时直接拖动…

期权交割对股市是好是坏?2024期权交割日一览表

期权交割是指期权买方在期权合约到期日或之前行使期权,卖方履行义务,按照约定的价格和数量与期权卖方进行标的物的买卖或现金结算的过程。 交割方式 期权交割可以分为实物交割和现金交割,具体取决于合约规定。 实物交割 实物交割是指期权买…

Git推送本地项目到gitee远程仓库

Git 是一个功能强大的分布式版本控制系统,它允许多人协作开发项目,同时有效管理代码的历史版本。开发者可以克隆一个公共仓库到本地,进行更改后将更新推送回服务器,或从服务器拉取他人更改,实现代码的同步和版本控制。…

C#程序带参数运行

总结参数是靠 空格来分割 不同组参数的。 参考链接 C#控制台程序入口函数 Main(string[] args) 参数详解_c#中args-CSDN博客https://blog.csdn.net/xwnxwn/article/details/113802305#:~:text%E5%8F%B3%E9%94%AE%E7%82%B9%E5%87%BB%E3%80%90%E9%A1%B9%E7%9B%AE%E3%80%91--%E3%…

下一代云原生应用引擎OpenNJet体验

文章目录 前言OpenNJet 介绍OpenNJet VS NGINXOpenNJet 安装OpenNJet 动态配置体验动态location动态黑名单动态灰度发布 体验感受 前言 作为一名技术人员,我们应时刻保持对行业动态的关注,今天我们就来体验一下号称下一代云原生应用引擎OpenNJet。 Ope…

2022 csp-j 答案(精选题)

主题目 16 - 21题 22 - 27题 28 - 34题 35 -39题 40 - 44题 精选题目 答案及解析 28题 答案:T 解析:考查时间复杂度评估。 31题 答案:A 解析:模拟即可。 32题 答案:B 解析:模拟即可。 34题 答…

H3C无线控制器查看AP版本是否自动升级

全部网络--无线配置--AP管理--AP全局配置 如果开启了AP版本升级,那么当升级AC无线控制器的时候 , AP也会同时进行升级 命令行: [H3C]wlan auto-ap enable 自动注册 [H3C]wlan auto-persistent enable 自动固化 [Sysname] …

mysql 版本升级 8.0.24升级到 8.0.34

mysql 版本升级 8.0.24升级到 8.0.34 1、官方升级手册必看1.0、官方升级手册必看1.1、理解升级过程会做什么1.2、备份升级前的数据1.3、支持的升级路径(什么版本升级到什么版本)1.3.1、mysql所有版本归纳1.3.2、版本升级选择的原则 1.4、5升级8.0需要注意 了解MySQL 8.0需要注意…

PotatoPie 4.0 实验教程(37) —— FPGA实现摄像头图像二值化闭运算效果

手机扫码 链接直达 https://item.taobao.com/item.htm?ftt&id776516984361 什么是图像闭运算,有什么作用? 图像闭运算是由膨胀操作和腐蚀操作组成的。其作用与图像开运算相反,主要用于填充物体内部的小洞或小孔,平滑物体边…