标签: Python

38 篇文章

thumbnail
让 ChatGPT 快速实现 To-Do List Web 应用
前言 体验 ChatGPT 有段时间了,关于它的代码能力,只是比较粗浅地使用过。比如让它解一道算法题、解释一段代码的含义等。 但它的潜力不止于此,它可以做更多的事情。比如,我们可以让它实现一个 To-Do List Web 应用,像下图这样。 生成初版 To-Do List 和 ChatGPT 对话,最重要的是准确地描述需求。在开源社区中总结了大量…
thumbnail
Python 中的 list 是如何实现和使用?
前言 Python 中的 list 是一种序列类型,可以存储任意类型的对象,如整数、字符串、元组等。 list 是可变的,也就是说,我们可以在运行时添加、删除或修改 list 中的元素。那么,Python 中的 list 是如何实现和使用的呢?本文将从以下几个方面来介绍: list 的内部结构 list 的动态扩容机制 list 的时间复杂度分析 …
py-libterraform 的使用和实现:一个 Terraform 的 Python 绑定
本文同步发表于字节话云公众号。 初衷 在某个使用 Python 开发的业务中,涉及到 Terraform 的交互,具体有两个需求: 需要调用 Terraform 的各种命令,以完成对资源的部署、销毁等操作 需要解析 Terraform 配置文件(HCL 语法)的内容,分析里面的组成 对于前者,有一个名为 python-terraform 的开源库,…
是时候用 chpip 管理 pip 源了
本文同步发布于字节话云公众号。 前言 工作中会用到一些内部的 Python 包,自然就需要将 pip 源设置为内部 pypi 服务的 URL。但拿着同一台笔记本回到家中时,要么需要开启 VPN 连接到公司内网,要么需要将 pip 源设置为国内镜像源。 设置 pip 源虽然能用 pip config set global.index-url http…
为什么使用 PyCharm 运行用例成功却无法退出?
本文同步发布于字节话云公众号。 前言 前段时间由于将项目使用的某 SDK 进行了升级,在使用 PyCharm+unittest 运行一个用例时,能运行并输出果,却一直无法退出用例。随着排查的深入,发现是此 SDK 中的线程在“作祟”。 用简单的代码复现 简单起见,下面这段代码(Python 2)包含了简单的线程逻辑和一个用例,来复现遇到的问题: #…
thumbnail
为什么 eventlet 在 Apple M1 上卡住了?
本文同步发布于字节话云公众号。 背景 前段时间老的 MacBook 到了退休的年纪,听了好友的安利换了基于 Apple M1 的 MacBook,在运行一个项目时发现原本能正常执行的任务在新笔记本上就一直是进行中,由此展开了一段 Bug 调试之旅。 初步探索 有如下几点信息: Python 版本为 2.7.10 +,eventlet 版本为 v0.…
thumbnail
从零打造 GitHub 钉钉机器人
本文同步发布于字节话云公众号。 背景 很多人都有自己的 GitHub 项目,可能需要将仓库中的事件自动通知到钉钉中。尽管钉钉群里可以添加专门的 GitHub 机器人,但它所支持的事件类型非常有限,基本只有 push 相关的事件。想要支持更多的事件,不如自己动手打造一个机器人。 于是,实现了一个 GitHub to DingTask 的项目。该项目通…
thumbnail
为什么使用 PyCharm 调试没有按预期进入断点?
本文同步发布于字节话云公众号。 前言 最近调试一段复杂代码的时候遇到一个问题,我在某处打了断点,并认为按照预期应该会运行到指定的断点,但遗憾的是并没有。几经排查,发现了一处隐藏的“坑”。 用简单的代码复现 简单起见,用下面这段代码来复现遇到的问题: class Person(object): def __init__(self, id): self…
thumbnail
Python 命令行大乱斗
前言 本文首发于 凌云时刻公众号。 当你想实现一个命令行程序时,或许第一个想到的是用 Python 来实现。比如 CentOS 上大名鼎鼎的包管理工具 yum 就是基于 Python 实现的。 而 Python 的世界中有很多命令行库,每个库都各具特色。但我们往往不知道其背后的设计理念,也因此在选择时感到迷茫。这些库的作者为何在重复造轮子,他是从哪…
PEP 584:字典合并操作符来了
一、前言 就在本周,字典合并特性(PEP 584)的提交被合入了 CPython 的主干分支,并在 2020-02-26 发布了 Python 3.9.0a4 预览版本。 那什么是字典合并操作符呢?在回答这个问题前,我们不妨回忆下集合的合并操作。当我们想要对两个结合做合并操作时,会怎么做呢? >>> s1 = {1, 2} >>&…