Python和Pycharm、Vscode使用技巧

Python和Pycharm、Vscode使用技巧文章目录前言 PycharmDebug 函数 debugconsole 基于支持正则的文本编辑器批量修改把文本中的偶数和奇数分离参考资料前言前两天在调试一个巨大的程序 跑起来都要几个小时 经过把训练集替换成测试集之后才快了一些 但是仍然有中途崩溃的问题 期间想了各种办法 并总结了这篇文章 本文主要记录一些调试技巧 PycharmDebug 函数 my hook target function name fun to hook hook function tmp storage

前言

前两天在调试一个巨大的程序,跑起来都要几个小时,经过把训练集替换成测试集之后才快了一些,但是仍然有中途崩溃的问题。期间想了各种办法,并总结了这篇文章。

Debug是一门非常使用的技巧,一旦学会终身受益,而且这方面也很少有人去教我们。本文主要记录一些调试技巧

Pycharm Debug

hook 函数

my_hook_target_function_name = 'fun_to_hook' hook_function_tmp_storage = eval(my_hook_target_function_name) def _hook_target_function_replacement(*args): hook_function_tmp_storage(*args) # do your things print('hook method [' + my_hook_target_function_name + ']...') exec(my_hook_target_function_name + '=_hook_target_function_replacement') 

修改fun_to_hook并在_hook_target_function_replacement函数体内写hook之前或者之后的代码即可。在某些监视函数执行前的时机,例如查看当时的变量环境等可能会用到。

debug console

基于支持正则的文本编辑器批量修改

写代码的过程中我们常常需要把一部分代码迁移或者批量替换,虽然只是些文本,但是为了这个重新写一个py文件with open('file') as fre.findallre.subreplace实在太过冗余。其实直接在编辑器上修改就行了
在正则支持这一点和sublime、vscode是一样的
比如以下几个案例




把文本中的偶数和奇数分离

例如有以下文本 匹配[02468]

0 
0 31 
进阶,把奇数偶数交换

在这里插入图片描述
首先将偶数选中,拷贝保存到文件t_file里,并替换成t

ttttttttttttttttttttttttttttttt 

然后正则选中想要替换的奇数,拷贝并替换成x

// Navigator.pushNamed(context, "/image_preview", arguments: message); // Navigator.pushNamed(context, "/video_play", arguments: message); // Navigator.pushNamed(context, "/file_preview", arguments: message); // Navigator.pushNamed(context, "/webview", arguments: param); // Navigator.pushNamed(context, "/webview", arguments: param); // Navigator.pushNamed(context, "/image_preview", arguments: tempMsg); // Navigator.pushNamed(context, "/file_preview", arguments: tempMsg); // Navigator.pushNamed(context, "/webview", arguments: param); 
Get.toNamed("/image_preview", arguments: message); Get.toNamed("/video_play", arguments: message); Get.toNamed("/file_preview", arguments: message); Get.toNamed("/webview", arguments: param); Get.toNamed("/webview", arguments: param); Get.toNamed("/image_preview", arguments: tempMsg); Get.toNamed("/file_preview", arguments: tempMsg); Get.toNamed("/webview", arguments: param); 

或者用于把散落在每一行得模式1代码和模式2代码交换

后续探索

code-server 远程调试

第二天早上检验。Word天!变量依然是保存的。

至于对特大程序vscode是否会采用另外一种策略还不得而知。

参考资料

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220286.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:49
下一篇 2026年3月17日 下午8:49


相关推荐

  • Kibana 使用 KQL 查询语法-kibana 常用查询语法

    Kibana 使用 KQL 查询语法-kibana 常用查询语法Kibana 查询语言 KQL 是一种使用自由文本搜索或基于字段的搜索过滤 Elasticsearc 数据的简单语法 KQL 仅用于过滤数据 并没有对数据进行排序或聚合的作用 KQL 能够在您键入时建议字段名称 值和运算符 建议的性能由 Kibana 设置控制 KQL 具有与 Lucene 查询语法不同的一组特性 KQL 能够查询嵌套字段和脚本字段 KQL 不支持正则表达式或使用模糊术语进行搜索 要使用旧版 Lucene 语法 请单击搜索字段旁边的 KQL 然后关闭 KQL 术语

    2026年3月18日
    1
  • 嵌入式存储器分类

    嵌入式存储器分类嵌入式存储模式讲解

    2026年3月19日
    2
  • 羞,Java 字符串拼接竟然有这么多姿势

    羞,Java 字符串拼接竟然有这么多姿势二哥 我今年大二 看你分享的 阿里巴巴 Java 开发手册 上有一段内容说 循环体内 拼接字符串最好使用 StringBuilde 的 append 方法 而不是 号操作符 到底为什么啊 我平常一直就用的 号操作符啊 二哥有空的时候能否写一篇文章分析一下呢 就在昨天 一位叫小菜的读者微信我说了上面这段话 我当时看到这条微信的第一感觉是 小菜你也太菜了吧 这都不知道为啥啊 我估

    2026年3月19日
    2
  • ETL开发面试题集

    ETL开发面试题集ETL讲解(很详细!!!)ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节。通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计…

    2022年6月13日
    77
  • hive with as 语法

    hive with as 语法

    2021年11月27日
    60
  • Django之用户认证系统分析

    1.用户模型在django.contrib.auth.models.py包中定义了classUser(AbstractUser)类(1)User模型字段我在django中使用的是MySql,

    2021年12月30日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号