- 博客(405)
- 资源 (1)
- 收藏
- 关注
原创 巧夺天工:VSCode Python 终端环境隔离的背后原理
理解本质:环境激活本质上就是修改环境变量预设而非反应:提前获取和设置环境变量,而不是在终端创建后再执行命令细节处理:通过三段式命令和特殊标记确保环境变量获取的准确性优雅降级:对特殊情况(如 conda 环境)提供专门的处理方案这种设计不仅保证了可靠性,还提供了出色的用户体验。这也告诉我们:有时候,最优雅的解决方案不是在问题发生时再处理,而是通过巧妙的设计提前预防问题的发生。
2025-01-13 23:41:30
450
原创 个人评测 | Cursor 免费平替:Roo Cline + DeepSeek-v3/Gemini-2.0 + RepoPrompt AI 辅助编程
文章首先介绍了在 VS Code 中使用插件 Roo Cline 以达到和 Cursor 类似功能的方法。接着,介绍了如何使用 Repo Prompt 这款软件,在网页版 Claude Pro 中体验类 Cursor 的功能(相比调用 API ,使用网页版费用更加可控)。最后,以一个 AI 辅助编程实例讨论了这类工具的局限性,最终提出三点结论:(一)小型项目使用 AI 事半功倍,但是每一个 prompt 不应提出太多需求,复杂需求应在多轮对话中逐步提出;(二)对复杂项目而言,市面上的 AI 暂难以处理;
2025-01-03 15:12:42
5778
2
原创 Python 虚拟环境:原理解析与最佳实践
项目结构推荐├── .venv/├── src/├── tests/├── pyproject.toml # 或 requirements.txt环境管理建议所有项目都使用虚拟环境将.venv加入.gitignore使用或更现代的依赖管理工具明确指定依赖版本.gitignore 示例# 虚拟环境.venv/venv/ENV/# Python*.py[cod]*$py.class# 包分发dist/build/版本控制注意事项锁定关键依赖版本。
2025-01-01 21:13:08
979
原创 Python 进阶:深入理解 import 机制与 importlib 的妙用
import sys"""从字符串加载模块的加载器""""""执行模块代码""""""查找并加载字符串模块的查找器""""""注册一个字符串模块""""""查找模块规范"""fullname,# 使用示例# 创建并注册查找器# 注册一个虚拟模块")""")# 导入并使用虚拟模块动态生成的代码从数据库加载的模块网络传输的代码实现插件化架构自定义模块的导入过程动态加载和重载代码创建虚拟模块扩展 Python 的导入机制。
2024-12-30 18:52:53
932
原创 深入Python胶水语言的本质:从CPython到各类扩展机制
Python的胶水特性不是偶然的,而是精心设计的结果。从最底层的Python/C API,到便捷的ctypes,再到现代化的pybind11,Python提供了完整的解决方案谱系。理解这些机制不仅有助于我们更好地使用Python,也能帮助我们在需要时正确选择和实现C扩展。在实际工作中,要根据具体需求选择合适的方案,在性能和开发效率之间找到平衡点。
2024-12-29 21:00:16
946
原创 Python 项目组织最佳实践:从脚本到大型项目的进化之路
Python 项目的组织方式会随着项目规模的增长而演进。清晰易懂易于维护便于测试容易扩展记住:项目结构不是一成不变的,应该根据项目的实际需求和团队规模来选择合适的组织方式。避免过度设计,同时也要为未来的扩展预留空间。通过遵循 Python 的最佳实践,我们可以构建出更加专业和可维护的项目。
2024-12-26 22:30:04
1044
原创 Python 抽象基类 ABC :从实践到优雅
今天我们来聊聊 Python 中的抽象基类(Abstract Base Class,简称 ABC)。虽然这个概念在 Python 中已经存在很久了,但在日常开发中,很多人可能用得并不多,或者用得不够优雅。让我们从一个实际场景开始:假设你正在开发一个文件处理系统,需要支持不同格式的文件读写,比如 JSON、CSV、XML 等。
2024-12-25 22:42:19
1109
原创 Python 并发编程实战:优雅地使用 concurrent.futures
方案IO密集型CPU密集型混合型资源开销代码复杂度asyncio最佳较差好最低较高好较差较好低低一般最佳一般高低总的来说,选择合适的并发方案需要综合考虑任务特性、性能需求、代码复杂度等多个因素。在实际应用中,有时候甚至可以混合使用多种方案,以达到最优的性能表现。控制线程池大小# CPU 核心数# IO 密集型任务,线程数可以设置为核心数的 1-4 倍# CPU 密集型任务,线程数不应超过核心数print(f"推荐的线程数:")
2024-12-25 00:36:11
742
原创 Python 异步协程:从 async/await 到 asyncio 再到 async with
在 Python 3.8 以后的版本中,异步编程变得越来越重要。本文将系统介绍 Python 标准库中的异步编程工具,带领大家掌握asyncawait语法和asyncio的使用。
2024-12-23 21:00:26
1037
原创 Python 自带的日期日历处理大师:calendar 库
"""获取指定月份的工作日"""# day[0] 是日期,day[1] 是星期(0-6,0是周一)if day[0] > 0: # 排除填充日期# 周末或节假日跳过# 使用示例holidays = {date(2024, 1, 1), date(2024, 2, 10)} # 元旦和春节len。
2024-12-22 14:57:43
462
原创 shutil 标准库: Python 文件操作的万用刀
shutil提供了比 os 模块更高级的接口自动处理各种边界情况保持了 Python “batteries included” 的理念下次遇到文件操作需求,不妨先看看 shutil 是否已经提供了合适的工具。毕竟,"不要重复发明轮子"也是 Python 的哲学之一。希望这篇文章对你有帮助!
2024-12-21 21:42:22
603
原创 Python性能优化的幕后功臣: __pycache__与字节码缓存机制
在日常Python开发中,我们经常会看到项目目录下神秘的文件夹和.pyc文件。作为经验丰富的Python开发者,今天让我们深入理解这个性能优化机制。
2024-12-20 22:37:54
843
原创 Python中的zip/unzip:像拉拉链一样组合数据的艺术
zip/unzip就像Python给我们的一件精巧工具,看似简单,实则蕴含着强大的数据处理能力。优雅地处理多个相关序列简化数据转换和格式化高效处理大规模数据实现优雅的矩阵操作希望通过这篇文章,大家能更好地理解和运用这个强大的特性。欢迎在评论区分享你的使用心得!
2024-12-19 22:04:59
380
原创 Python `*args` 和 `**kwargs`:优雅处理可变参数的终极指南 & 配合 frozenset 实现通用缓存装饰器
args和**kwargs编写更灵活的函数和装饰器实现参数转发处理不定量的参数掌握这些特性,可以让我们的代码更加优雅和通用。在日常开发中,合理使用这些特性可以大大提高代码的可维护性和可扩展性。希望这篇文章对你有帮助!如果你有任何问题或见解,欢迎在评论区讨论。
2024-12-18 21:36:44
787
原创 Python `__slots__` 进阶指南:不止于节省内存,从原理到实践
_slots__不仅仅是一个性能优化工具,它还能帮助我们写出更清晰、更健壮的代码。在设计数据密集型应用时,合理使用__slots__可以同时获得性能和代码质量的提升。实际工作中,可以先写普通的类,当发现性能瓶颈或需要更严格的属性控制时,再考虑引入__slots__。毕竟,过早优化是万恶之源,而__slots__的使用也确实会带来一些灵活性的损失。
2024-12-17 22:24:11
1179
原创 Python with 语句的深入理解:优雅处理资源管理 @contextmanager
大家都用过来读写文件,但可能较少去实现自己的 context manager。今天我们就通过几个实用场景,来深入理解这个优雅的语法特性。
2024-12-16 20:48:21
651
原创 Python Generator:一个被低估的性能利器
调用 OpenAI 的 API 时,设置,接着我们就可以“流式”地获取响应的内容。而非等待远程的模型将所有内容生成完毕,再返回给我们(这通常要等很久)。本文讨论这背后的 Python Generator。
2024-12-15 17:55:30
771
原创 Linux shell 使用 trap 命令优雅处理程序中断: shell 中的回调、锁与事务、以及 debug 调试
DEBUG 并不是中断信号,而是 Bash 的一个特殊 trap 事件。它在执行每个命令之前触发,主要用于调试目的。通过这些高级用法,我们可以构建更健壮、更可靠的 shell 脚本。无论是处理意外中断、实现锁机制,还是进行调试,可以捕获特定的信号并执行相应的处理函数。将被遗留在系统中,因为清理步骤没有被执行。长期积累下来,这些未清理的临时文件会占用大量磁盘空间。当我们运行这个脚本时,如果在执行过程中按下 Ctrl+C 中断操作,会发生什么?有时我们需要对不同的信号进行不同的处理。都是一个强大的工具。
2024-12-11 23:56:36
595
原创 在 spark pipeline 中加入已训练模型(以 离散化编码 ValueIndexerModel 为例)
现在有个需求,对于“将职业离散化”这个过程,我已经有了一套标准,该怎么办呢?举个例子,假设有职业列有三个值:`学生`、`工作`以及`未知`。如果将离散化交给 Spark ,那么,我们可能得到 `学生0` `工作1` `未知2` 或者 `学生1` `工作2` `未知0` 等不确定的编码。现在业务上要求必须使用一套确定的编码,该怎么办呢?
2022-02-10 20:03:09
1778
原创 Windows 运行 spark-hadoop 报错 java.io.IOException: (null) entry in command string: null chmod 0644
这个很简单,去 https://github.com/cdarlint/winutils 这里找到你的对应版本,用其中的 bin 代替你本地的 bin 。然后配置环境变量 %HADOOP_HOME% 以及 PATH+=%HADOOP_HOME%/bin 。
2022-02-10 17:15:05
1967
1
原创 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
当我们想退出 python ,返回我们的 shell 时,你将如何退出?
2021-09-08 14:55:19
853
原创 Spark 自己实现分箱逻辑遇到的坑
说一所小学有好几个班级,现在要 以班级为单位 给孩子们按照身高进行排序,并且记录下来。问题就是,全学校只有一条测身高的尺子,而且因为孩子们过于顽劣等主客观因素,测量身高、按身高排序、登记身高这些过程,必须在一间教室里进行。 没有被轮到测量的班级,就在操场活动。
2021-07-21 09:18:23
742
2
原创 【求助】如何从 Spark 的 DataFrame 中取出具体某一行?我自己的一些思考
如何从 Spark 的 DataFrame 中取出具体某一行?根据阿里专家Spark的DataFrame不是真正的DataFrame-秦续业的文章-知乎的文章:DataFrame 应该有『保证顺序,行列对称』等规律因此「Spark DataFrame 和 Koalas 不是真正的 DataFrame」确实可以运行,但却看到一句话,大意是数据会被放到一个分区来执行,这正是因为数据本身之间并不保证顺序,因此只能把数据收集到一起,排序,再调用 shift。这样就不再是一个分布式的程序了,甚至比 pa
2021-07-18 22:33:40
2039
1
原创 Python 中非常狗的一个坑(在 `a={1:2},`后面多了一个逗号,自动被判为 tuple 类型了)
本意是好的,语法灵活一点,随意一点,用起来方便。可是不限制声明类型,甚至元组的声明都不用加括号,这就有点狗了。a = {'a': 2}# a 是 dicta['a']# a['a'] 是 2a = {'a': 2},# a 是 tuple ({'a': 2}, )a['a']# 报错a[0]['a'] # 才是 2...
2021-07-14 00:59:13
575
原创 如何优雅地实现浏览器兼容与CSS规则回退
本文就是探讨如何优雅地应对浏览器兼容问题,包括四点:层叠机制来支持较早的浏览器,Modernizr设置辅助类来分别编写样式,使用 @supports 规则回退,简短的 JavaScript 代码实现回退。
2021-07-06 17:25:37
468
原创 《Visual Studio Code权威指南》读后总结
五分满分我给四分,毕竟作者的水平与专业性是值得称道的,但是全书内容太过全面:从各个语言到前端、从云计算到物联网,以至于大部分内容都是一带而过。
2021-07-01 11:39:31
2539
1
原创 npm 更新依赖 / 更新库 / 更新包 的命令 | npm outdated | npm updated
最近在用一个开源项目的 beta 版,很不稳定,想升级一下 node 项目依赖。这些命令会很常用,在这里记录一下。
2021-06-29 22:33:57
1679
原创 @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它
本文简单与读者朋友们「科普」一下修饰器,注意到我们这里实际上仅仅修饰了无参数的函数。其实,修饰器还有许多更加优雅用途,比如传入参数 *args, **kwargs ,修饰类 __call__ 等用法。期待以后我遇到好的应用场景,将经验分享给朋友们。
2021-06-13 22:19:30
594
5
原创 并发和并行 | Python中实现多线程 threading 和多进程 multiprocessing
深入浅出比喻说明线程与进程,附小白都能看懂的对比试验。
2021-06-10 21:35:52
6394
2
BA_network-SEIR-Sim.rar
2020-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人